23

Code-First モデルを使用しているときに、すべてのプロパティDbContextに使用するようにEntity Framework をグローバルに設定することは可能ですか?datetime2System.DateTime

メソッドを使用して列ごとにこれを行うことができますHasColumnType()が、既存のコードベースではグローバルなソリューションが必要です。

4

2 に答える 2

36

EF6 がリリースされてからかなりの時間が経過し、この質問がまだ検索に表示されるため、カスタム規則を使用して SQL 型を設定する方法を次に示します。DbContext クラスの OnModelCreating メソッド内で次のことを行います。

modelBuilder.Properties<DateTime>()
    .Configure(c => c.HasColumnType("datetime2"));
于 2015-07-17T21:50:12.420 に答える
7

EF5 ではなく、EF6 (現在はアルファ版) では、カスタム規則でこれを許可しています。HasColumnTypeEF5 の場合、リフレクションを介してモデル ビルダーへの呼び出しを追加する、リフレクションに基づくカスタム コンベンション ベースのフレームワークが必要です。たとえば、 EF Code First Extrasを確認してください(プラグ可能な規約をサポートしていると主張しています)。

于 2013-03-06T13:45:44.130 に答える