【发布时间】:2009-12-15 20:16:19
【问题描述】:
我创建了映射到实体域模型中的实体的 POCO 域对象。 直到现在我必须处理多对多关系时,一切都运行良好。
假设我有三张桌子。
- 博客
- 博客标签
- 标记
您可以看到博客和标签是多对多的,有一个桥表,BlogTag 包含两个表的外键。
我也有对应的领域模型:
- 博客
- 博客标签
- 标签
现在,我选择了一个博客列表,并尝试访问博客中的特定标签。
myBlog.BlogsTags[0].Tag
BlogTags[0].TagForeignKey 填了,但是 BlogTags[0].Tag 是 null !!
我也开启了延迟加载。
我可能做错了什么?
谢谢。
好的。这是一些源代码。
我的上下文类
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 类只有一个带有 virtual 关键字的相关对象列表。
【问题讨论】:
-
更多代码可能有助于诊断问题。我可以验证多对多工作正常。我有很多用户实体,它们可以有很多角色,反之亦然。我正在使用存储库模式,其中我有一个通用存储库,它具有返回活动 EF 上下文的对象上下文属性。在 EF 上下文检索的构造函数中,我将 Lazyloading 设置为 true:base.ContextOptions.LazyLoadingEnabled = true;
标签: entity-framework poco