我很高兴找到所谓的“存根方法”来保存数据库查找更新(除其他外)。但是当我尝试它时,只是填充了我的存根上的主键字段而没有其他任何东西,在我的DbEntityValidationException中出现了一大堆验证错误,这些错误是在SaveChanges()上引发的。他们中的大部分/全部是EF抱怨未指定的必填字段,但我假设我也会因参考完整性问题而受到抨击。
我假设(错误地?)存根方法是EF的一种方式1)知道基于主键更新哪个实体,2)我不需要重新加载我没有更新的所有其他字段和3 )只会更新我实际更新的那些字段。
我现在很确定我误解了。太糟糕了,存根方法是一个很酷的概念。
如果这一切都是真的,那么看来我必须在更新之前先检索对象吗?
(http://blogs.msdn.com/b/alexj/archive/2009/06/19/tip-26-how-to-avoid-database-queries-using-stub-entities.aspx)
答案 0 :(得分:0)
Stub方法很酷,但EF中的验证不是。这两件事不能合作。使用具有所有有效数据和验证的完整实体或存根方法以及其他改进而无需验证。
您可以致电:
关闭验证context.Configuration.ValidateOnSaveEnabled = false;