質問

LINQ to SQLを使用して、アプリケーションからデータベースに接続しています。環境を運用環境からステージング環境に変更する場合、web.configで接続文字列を更新できます。 しかし、環境が変化したときに更新する必要があるもう1つの価値があります。それがデータベース名です。 LINQ to SQLデザイナーファイルでは、次のような属性としてデータベース名が記載されています。

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]

設定ファイルからNameの値を動的に取得するにはどうすればよいですか

ご協力ありがとうございます。

役に立ちましたか?

解決

で述べたように http://msdn.microsoft。 com / en-us / library / system.data.linq.mapping.databaseattribute.name.aspx

" DatabaseNameは、接続自体がデータベース名を指定していない場合にのみ使用されます。" この属性を削除すると、すべて正常に動作します!

他のヒント

ラッパークラスを使用して、次の行に沿ってコンテキストを提供しました

public DataContext Context = new DataContext(SqlConnectionString); //much simplified

Visual Studioの外部で.dbmlファイルを編集し(デザイナーはDatabaseAttributeへのアクセスを許可していないようです)、ここでnameプロパティを削除して、この問題を修正しました。

<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">

(受け入れられた答えはもはや正しくないことに注意してください:この属性は接続文字列を上書きしていました)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top