3

データベースのキャプションフィールドにデフォルトの制約があります。Webアプリでは、キャプションが空の場合、データベースにNULL値が渡され、samoフィールドをnullにすることはできないため、データベースは例外を返します(Caption varchar(50)NOTNULL)。

したがって、値を設定する( ""-空の文字列)か、値が実際に提供されていない場合にデータベースにNULLを送信しないようにする最も簡単な方法は何ですか。EntityFrameowrk、またはデータアクセス層でそれを設定するにはどうすればよいですか...?

4

5 に答える 5

1

新しいエンティティの作成直後に空の文字列でプロパティを定義するだけです。たとえば、コンストラクター内。

既存のエンティティを更新する前に、プロパティの null を確認できます。

entity.StringProperty = entity.StringProperty ?? String.Empty;
_db.SaveChanges();
于 2012-11-08T22:10:30.897 に答える
1

私のシステムでは、MVC4 エンティティ フレームワーク 5.0 を次のように使用しています (DataAnnotation)

[DefaultValue = DateTime.Now]

public DateTime MyDateTime { get; 設定; }

}

または、他のタイプについてはこのように...string.Empty

于 2012-11-09T14:31:55.577 に答える
0

これはあなただけが知っている問題のようです。null 値はビジネス ロジックを表し、それを理解する必要があります。

そこに意味があるため、null を許可するようにデータベースを変更する必要がありますか?

アプリケーションはデータベースに「-1」を保存する必要がありますか?

その値が null の場合、アプリケーションはフィールドをまったくコミットすべきではありませんか?

アプリケーションが関連性のないデータを含むフィールドを送信できるようにすることは、そのデータの将来の価値に影響しますか?

私の経験ではNULL、null が関係または値の不在を表す場合と同様に、データベースに値を配置することを許可してきました。その値が存在しない場合、それは、行われるべき、または行われる予定のアクションが発生していないことを意味します。ただし、ほとんどの人はビジネス ロジックをケースバイケースで実装するため、これは私だけのものです。

于 2012-11-08T21:44:37.010 に答える
0

エンティティでは、作成時にオブジェクトを初期化できますか? 私はあなたがLinqでそれを行うことができることを知っています. エンティティ オブジェクトのコード内に移動し、問題のプロパティを作成時に既定値に設定できますか?

于 2012-11-08T21:52:38.003 に答える
0

コンストラクタで設定します。

partial class MyEntityName {
    public MyEntityName() {
        this.Caption = "";
    }
}
于 2012-11-08T22:13:04.037 に答える