实体框架0..1到0..1的关系

时间:2011-11-22 10:46:02

标签: entity-framework entity-framework-4

我在尝试创建实体时遇到问题,并将其关联属性设置为与另一个实体的0..1关系

关联的两端都是0..1

这是我尝试做的事情

var entityA = new EntityA();
var entityB = new EntityB();
entityA.associatedEntity = entityB;
_context.SaveChanges();

它工作正常,两个实体都被保存但是当我检索entityA时,我将其associatedEntity属性设置为null

为什么?它发生在我身上只有0..1到0..1的关系。

2 个答案:

答案 0 :(得分:0)

是否为您的ObjectContext启用了延迟加载?如果不是,则必须显式加载相关实体。如果您正在使用POCO或代码优先,则可能还存在配置问题,这会导致EF无法创建正确的代理类型,该类型在您访问associatedEntity属性后执行延迟加载。

您可以在上下文的Include(string)对象之一上使用ObjectSet方法在EF中急切加载相关实体,例如:

context.EntityASet.Include("associatedEntity").Single(e => e.Id == 10);

答案 1 :(得分:-1)

您可以使用EF 4.1 / 2轻松实现与实体类属性top属性的简单关系。 欲获得更多信息:   的 using features of EF 4.1/2