我们的数据库的设置方式是,对于每个表,所有列都不允许空值。使用实体框架添加新记录时,为每个属性设置一个值变得非常烦人。基本上,我想避免这种情况:
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() 方法,并为每个为空的属性设置一个值。这是我到目前为止所拥有的:
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.empty,并且对于每个 int 类型的实体属性,都需要设置为 0,依此类推。这是否可能,更重要的是,用这种方法解决我的问题是否有意义?提前致谢。