0

私は、EF4.1を使用してデータベースにdateTime値を挿入する必要があるシーンリオにいます。NullableのデータベースのDateColumn。

エンティティを作成している間、私はそれを次のように入力します。

 DTCLOSE = referenceProblemLog.DateClosed.HasValue ? 
            referenceProblemLog.DateClosed.Value.ToFeedFormatString() : 
            System.DBNull.Value.ToString(), 

ここで、ToFeedFormatStringは拡張メソッドです。

今私が観察した問題は、適切な値があれば正しく挿入されます が、適切な日付値がない場合はデータベース列にNULLを挿入したいということです。ただし、EFは空の文字列で列を保存しています

フィールドのStoreGeneratedPatternを「Identity」に変更しようとしましたが、問題は、DTCLoseフィールドに値を割り当てることができないことです。

どうすれば両方のものを手に入れることができますか?1.適切な値がない場合はEFがデータベースにNULLを挿入する必要があります2.それ以外の場合は適切な値

助けてください

ありがとうAnup

4

2 に答える 2

0

System.DBNull.Value.ToString()最後に文字列オブジェクトが作成され、ToString() が null を返さないため、これは間違っています。

設定する必要がありますDTCLOSE = null

また、EF を使用する必要はありませんDBNull。null 許容プロパティを定義して設定するだけです。null

于 2012-09-25T12:56:08.807 に答える
-2

これを使用できます:

 Nullable<DateTime> date=null;
 var entity = new Model()
            {
                GoDate = date
            };

DataContext.Models.Add(entity);
DataContext.SaveChanges();
于 2016-02-10T02:17:43.617 に答える