在IValidatableObject的Validate方法期间延迟加载的问题

时间:2012-07-30 06:14:06

标签: entity-framework lazy-loading navigational-properties

我正在使用EF4.3,POCO,延迟加载和IValidatableObject接口。

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

我的问题是......当我对我的贷款实体进行更改时,它的验证方法是加载相关的合同实体,以确保其数据根据贷款的状态(或状态)有效......但是合同航行财产仍为空?如果我在调用SaveChanges之前立即快速监视贷款,则会加载合约数据并且SaveChanges继续正常,否则会失败。

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

干杯

克雷格

1 个答案:

答案 0 :(得分:2)

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