IValidatableObject的验证方法期间延迟加载的问题



我使用的是EF4.3、POCO、Lazy Loading和IValidatableObject接口。

我有一个贷款实体,与一个合同实体有1-1的关系。合同包含一组数据,除非需要,否则最好将其卸载。

我的问题是…当我对我的贷款实体进行更改时,它的Validate方法旨在加载相关的合同实体,以确保其数据根据贷款的状态(或状态)有效。。。但合同导航属性仍然无效?如果我在调用SaveChanges之前立即快速查看贷款,则会加载合同数据,SaveChanges会正常进行,否则会失败。

如果有人能解释我为什么会看到这种行为,我将不胜感激。

干杯

Craig

在验证期间,设计(内部EF实现)会关闭懒惰加载,以避免对数据库的意外查询。如果您的验证逻辑需要相关的实体,您的代码应该加载它。

最新更新