【发布时间】:2017-08-18 15:53:31
【问题描述】:
我想将所有字符串以大写形式保存到我的数据库中。我认为最好的方法是在我的DbContext 上覆盖SaveChanges()。我知道我需要打电话给ToUpper(),但我不确定该打电话给什么。
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries().Where(e => e.State == EntityState.Added || e.State == EntityState.Modified))
{
//do something
}
return base.SaveChanges();
}
【问题讨论】:
-
我会在您的数据库中对选定列使用 CHECK 约束,并在相应的属性设置器中使用 ArgumentExceptions。
-
我同意@DavidBrowne-Microsoft - 在重写的 SaveChanges() 函数中操作数据是一个糟糕的选择。我会选择在每个属性的 setter 函数上转换它们,甚至使用触发器在数据库级别转换它们,然后再在上下文中处理它们。
标签: entity-framework entity-framework-core .net-core-2.0