關於實體框架和在新對象持久化之前驗證新對象的最佳實踐(或換句話說調用.SaveChanges())依靠持久對象還是其他新對象?實體框架4和驗證關係集合中的非持久對象
例如,考慮以下幾點:
Entity1 MyEntity1 = new Entity1();
MyEntity1.Name = "Hornblower";
DataContext.Entity1s.Add(MyEntity1);
.... Other code ....
Entity2 MyEntity2 = new Entity2();
MyEntity2.Entity1s.Add(MyEntity1);
.... Other code ....
// Validate that MyEntity2 has at least 1 Entity1 relationship
if (MyEntity2.Entity1s.Count() > 0)
{
// Valid - save it
DataContext.SaveChanges();
} else {
// Invalid - handle it
}
在上面的僞代碼中,這會是驗證所需要的條件的有效和正確的方法 - 可以在.Count之間()被後返回都依據持久MyEntity1s和非持久MyEntity1s,因此在上述情況下導致驗證成功?
或者我應該堅持MyEntity1之前,將其附加到MyEntity2?
問候
你的人際關係的武
嗯,我想我是問爲 - 我從來沒有真正即使想到了這一點,是的,它意味着我的設計是錯誤的。謝謝! – Moo 2010-02-25 16:43:31
啊,看過了,這就是爲什麼我沒有在模型中實現它 - EF似乎沒有辦法指定Entity1-Entity2關係應該由Entity2上的'1或更多'組成側,只是'0或1'或'1'。所以它回到驗證來做到這一點。 – Moo 2010-02-25 16:52:46
你可以從另一面做到這一點,但是從你的問題來看,這是否適用於此。取決於你如何使用這一方面。 – 2010-02-25 17:26:46