2011-05-01 60 views

回答

2

没有简单的方法。在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。

另一种方式是通过业务逻辑中的自定义验证来强制执行此操作。