既存のデータベースから生成された EF モデルがあります。
EF モデルを使用する BL は、構成ファイルを持たないレガシー アプリケーションから呼び出され、EF エンティティ接続文字列を追加できませんでした。
接続文字列を追加する方法を見つけようとしています。Entity クラスのコンストラクターに次のコードを追加しました。この実装を実行すると、次のエラーが発生します。
Message = "キーワードはサポートされていません: 'metadata'."
接続文字列から MetaData を削除すると、次のエラーが発生します。
Database First および Model First 開発用の T4 テンプレートを使用して生成されたコードを Code First モードで使用すると、正しく動作しない場合があります。Database First または Model First を引き続き使用するには、実行中のアプリケーションの構成ファイルで Entity Framework 接続文字列が指定されていることを確認してください。Database First または Model First から生成されたこれらのクラスを Code First で使用するには、属性または DbModelBuilder API を使用して追加の構成を追加してから、この例外をスローするコードを削除します。
コード:
public partial class TestQEntities : DbContext
{
public TestQEntities(string nameOrConnectionString)
{
this.Database.Connection.ConnectionString = nameOrConnectionString;
}
}
_context = new TestQEntities(GetConnectionString());
private static string GetConnectionString()
{
var scsb = new SqlConnectionStringBuilder
{
DataSource = "(local)",
InitialCatalog = "DB",
IntegratedSecurity = true
};
var builder = new EntityConnectionStringBuilder
{
Metadata = `enter code here`"res://*/ROModel.csdl|res://*/ROModel.ssdl|res://*/ROModel.msl",
Provider = "System.Data.SqlClient",
ProviderConnectionString = scsb.ConnectionString
};
return builder.ToString() + ";App=EntityFramework";
}