大家早上好,實體框架4:多對多關係IQueryable而不是ICollection
我想解決一個我首先遇到的EF代碼問題。我的模式是以下
public class Article : IUrlNode
{
[Key]
public Guid ArticleID { get; set; }
public string Title { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateUpdated { get; set; }
public string Summary { get; set; }
[System.ComponentModel.DataAnnotations.InverseProperty("CategoryArticles")]
public virtual IQueryable<Category> ArticleCategories { get; set; }
public string FriendlyUrl
{
get;
set;
}
}
[RouteChild("CategoryArticles")]
public class Category : ContentNode
{
public Guid ServiceId { get; set; }
[System.ComponentModel.DataAnnotations.InverseProperty("ArticleCategories")]
public virtual IQueryable<Article> CategoryArticles { get; set; }
}
我已經寫了與我能夠從數據庫中檢索類別,而不實際知道它的類別代碼。從那時起,我必須在不知道它的文章的情況下再次檢索該類別的單個文章。對於類別,我依賴於ContentNode基類和IUrlNode接口上的Articles。
分類檢索工作正常,並用一個單一的查詢,但之後我真正得到我不得不使用反射來獲取由RouteChild指向的導航屬性的種類屬性找到適合我的標準的單篇文章。問題是導航屬性類型爲ICollection的,這意味着它會在最佳使用延遲加載,並把所有從數據庫中的文章,並找到一個我在內存中尋找。
我的問題也正是在這以前的帖子(不是我)描述:
Entity Framework Code First IQueryable
有沒有辦法有一個導航財產的IQueryable或其他一些設計,可以繞過這個限制?
你能創建一個新的可查詢呢?即使用文章ID從上下文開始新的查詢,您可以從中導航?希望這是有道理的... – Smudge202