【发布时间】:2011-05-01 21:24:38
【问题描述】:
我正在使用实体框架。
我的实体有一个字符串类型的 DayOfWeek 属性。
如何将其值限制为仅“星期日”、“星期一”、“星期二”等?
【问题讨论】:
标签: .net entity-framework
我正在使用实体框架。
我的实体有一个字符串类型的 DayOfWeek 属性。
如何将其值限制为仅“星期日”、“星期一”、“星期二”等?
【问题讨论】:
标签: .net entity-framework
没有简单的方法。如果是 ObjectContext API,您可以在 ObjectContext 实现中覆盖 SaveChanges:
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 的情况下也不支持枚举。
另一种方法是通过您在业务逻辑中的自定义验证来强制执行此操作。
【讨论】: