关于实体框架和在新对象持久化之前验证新对象的最佳实践(或换句话说调用.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