2

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

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

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

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

干杯

克雷格

4

1 回答 1

2

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

于 2012-07-30T08:22:36.000 回答