我创建了映射到实体域模型中的实体的POCO域对象。 一切都很好,直到现在,当我必须与多对多的关系工作。实体框架4.0 POCO和多对多问题
假设我有三张桌子。
- 博客
- BlogTag
- 标签
可以看出,博客和标签是多到许多与桥台,BlogTag包含一个外键两个表。
我也有相应的域模型:
- 博客
- BlogsTags
- 标签
现在,我选择博客的名单,我试图从博客访问特定的标签。
myBlog.BlogsTags [0] .TAG
BlogTags [0] .TagForeignKey填充,但BlogTags [0] .TAG是空 !!
我也打开了LazyLoading。
我会做什么错?
谢谢。
好的。这里有一些源代码。
我的上下文类
public class MyContext : ObjectContext
{
public MyContext() : base(Utility.GetConnectionString(...), "containerName")
{
Blogs = CreateObjectSet<Blog>();
BlogsTags = CreateObjectSet<BlogTag>();
Tags = CreateObjectSet<Tags>();
base.ContextOptions.LazyLoadingEnabled = true;
}
public ObjectSet<Blog> Blogs { get; private set; }
public ObjectSet<BlogTag> BlogsTags { get; private set; }
public ObjectSet<Tags> Tags { get; private set; }
}
和我的POCO类只需要通过虚拟关键字相关对象的列表。
多一点的代码可以帮助诊断问题。我可以验证多对多工作正常。我有许多用户实体可以有很多角色,反之亦然。 我正在使用存储库模式,其中我有一个通用存储库,其中包含一个返回活动EF上下文的对象上下文属性。在EF上下文检索的构造函数中,我将Lazyloading设置为true: base.ContextOptions.LazyLoadingEnabled = true; – Jay 2009-12-16 16:37:36