我正在使用实体框架。
我的实体有一个类型为string的 DayOfWeek 属性。
如何将其值限制为仅限“星期日”,“星期一”,“星期二”等?
答案 0 :(得分:2)
没有简单的方法。如果是ObjectContext API,您可以在SaveChanges
实现中覆盖ObjectContext
:
public override int SaveChanges(SaveOptions options)
{
var entities = ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified)
.Select(e => e.Entity)
.OfType<YourEntityType>();
foreach (var entity in entities)
{
// Here you can validate your property - entity is of your type
}
return base.SaveChanges(options);
}
问题是EF不支持自定义标量类型,并且在使用int替换值时也不支持枚举。
另一种方法是通过业务逻辑中的自定义验证来强制执行此操作。