我正在使用EF4.3,POCO,延迟加载和IValidatableObject接口。
我有一个与合同实体有1-1关系的贷款实体。合同包含一堆数据,除非必要,否则最好将其卸载。
我的问题是......当我对我的贷款实体进行更改时,它的验证方法是加载相关的合同实体,以确保其数据根据贷款的状态(或状态)有效......但是合同航行财产仍为空?如果我在调用SaveChanges之前立即快速监视贷款,则会加载合约数据并且SaveChanges继续正常,否则会失败。
如果有人能够解释我为什么会看到这种行为,我将非常感激。
干杯
克雷格
答案 0 :(得分:2)
在验证期间,设计(内部EF实现)会关闭延迟加载,以避免对数据库的意外查询。如果验证逻辑需要相关实体,则代码应加载它。