2016-06-09 88 views
0

讓我們假設我有一個實體這樣的:條件包括EF6解決方法

Public classs Blog{ 
    public int x, 
    public bool y, 
    public virtual ICollection<someType> someTypes 
    public virtual ICollection<Post> Posts 
} 

現在我想火以下查詢

repository.findBy(
    blogs => blogs.y, 
    blogs => blogs.someTypes, 
    blogs => blogs.Posts.where(someVar => someVar.someField == someValue) 
).select() 

someField是郵政的屬性。

其中findBy是:

IQueryable<T> FindBy(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes); 

它提供了以下錯誤:

包含路徑表達式必須是指在type.Use限定的導航屬性點綴參考導航屬性和路徑選擇運營商收集導航屬性

+1

x是沒有導航屬性,Posts.where()也沒有導航屬性。 – DevilSuichiro

+1

有條件的包含尚未由EF團隊實施,您得到的錯誤不包括類中定義的類型。您只能包含ICollection或虛擬財產 – Eldho

回答

0

嘗試刪除此blogs => blogs.y

This is not a navigation property, You can only include Navigation property in the include statement.

默認情況下填充列,除非您使用投影。

repository.findBy(blogs => blogs.someTypes, blogs => blogs.Posts).select() 

注* 條件包括尚未由EF團隊實施
這仍然是EF團隊工作項目,你可以投票here

請注意,這是目前無法濾除相關的實體被加載。包含將始終引入所有相關實體。 Msdn Reference