マイコードファーストモデルのプロパティはSystem.DateTime
です。コードを播種データベースが起動されると、それはこの例外をスロー:EF 4.1、CodeFirst C#DateTime datetime2とdatetimeの非互換性の対応方法
SqlExceptionが(0x80131904):datetimeデータ型にDATETIME2データ型の変換は、範囲外の値をもたらしました。
私は、コンストラクタで新しいDateTime
オブジェクトを作成しています。コードまず、データベーススキーマを作成しています。 Code Firstのこの明らかなバグをどのように克服するのですか?私は私のデータ型に特に関心がありません。私は単に日付を格納する必要があり、オプションで時刻を記録する必要がありますが、重要ではありません。
多くの投稿を検索して読みましたが、このエラーはCodeFirstで生成されたデータスキームから来たものではありません。私が見つけた最も近い答えは、edmx
ファイルのProviderManifestToken
に変更を加えたものですが、私のプロジェクトにはedmx
というファイルがありません。私はデザイナーを使わなかった、私はコードファーストを使用しています。
ありがとう、私の解答をご覧ください。 – UniqueMan
流暢なAPIの代わりにコードアノテーションを使用できますか? – billy
@billy:注釈を使用して 'datetime2'型を定義することができます:' [Column(TypeName = "datetime2")] '。精度を明示的に定義する属性はありません。しかし、あなたは試行することができます(精度0の例): '[Column(TypeName =" datetime2(0) ")]'。それがうまくいくかどうかはわかりません。 – Slauma