7

新しい DbContext を作成するときに、エンティティ フレームワーク接続文字列をコンストラクター引数として配置するコード サンプルを見てきました。しかし、新しい ADO.NET エンティティ データ モデルをプロジェクトに (データベースを最初に) 追加したとき、DbContext にはパラメーターのないコンストラクターが 1 つしかありません。

私はステップを逃しましたか?そのコンストラクターを取得するにはどうすればよいですか?

.net フレームワーク 4.5 エンティティ フレームワーク 5 をターゲットとする Visual Studio 2012。

4

4 に答える 4

4

新しいデータモデルウィザードは、構成ファイルに接続文字列を追加し、コード生成は、構成ファイルの接続文字列が次のようになるように、「name=foo」で基本コンストラクターを呼び出すパラメーターなしのコンストラクターでコンテキストを作成するように設定されます使用済み。

(configから読み取る代わりに)接続文字列をコンストラクターに明示的に渡したい場合は、コンテキストが部分クラスであるという事実を使用して、そのコンストラクターを追加できます。T4コード生成テンプレートを変更して、生成されるコンストラクターを変更することもできます。

于 2013-01-28T18:48:31.953 に答える
1

最初にコードに変更したい場合は、これを使用してください:)

    public class MyCustomDBContext : DbContext
    {
        public MyCustomDBContext()
           : base(GetConnectionStringName())
        {

        }

        public MyCustomDBContext(string connString) : base(connString)
        {

        }
于 2013-01-28T19:01:59.120 に答える
0

「コード生成戦略」を「レガシーObjectContext」に変更することで、EF4で使用していた方法で動作するようにこれを修正しました

ここに画像の説明を入力

于 2015-03-31T10:29:14.197 に答える