2011-05-01 62 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。

另一種方式是通過業務邏輯中的自定義驗證來強制執行此操作。