私たちのデータベースは、すべてのテーブルについて、すべての列が null を許可しないように設定されています。エンティティ フレームワークを使用して新しいレコードを追加する場合、すべてのプロパティに値を設定するのは非常に面倒です。基本的に、私はこれを避けたい:
var customer = new usr_Customer();
customer.CUSTNMBR = customerNumber != null ? customerNumber : string.Empty;
customer.MerchantID = merchant.MerchantId != null ? merchant.MerchantId : string.Empty;
customer.SupplyClubID = merchant.SupplyClub != null ? merchant.SupplyClub : string.Empty;
customer.Group01 = merchant.Group01 != null ? merchant.Group01 : string.Empty;
この問題を解決するには、SaveChanges() メソッドをオーバーライドし、null のすべてのプロパティに値を設定します。これが私がこれまでに持っているものです:
public override int SaveChanges()
{
var changeSet = ChangeTracker.Entries();
if (changeSet != null)
{
foreach (var entry in changeSet.Where(c => c.State == EntityState.Added))
{
//If entity properties are null, set them to something.
}
}
return base.SaveChanges();
}
この時点では、私は EF を十分に理解していないため、どのように進めればよいかわかりません。string 型のすべてのエンティティ プロパティを string.empty に設定する必要があり、int 型のすべてのエンティティ プロパティを 0 に設定する必要があることなどを知っています。これは可能ですか?さらに重要なことに、このアプローチで問題を解決することは理にかなっていますか? 前もって感謝します。