我創建了映射到實體域模型中的實體的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