我很好奇如何創建可以被LINQ翻譯的屬性。下面是一個非常簡單的例子。創建LINQ to Entities可以翻譯的屬性
我有一個表/類Category
,具有柱ParentId
鏈接到本身(因此,一個類別可以具有子類別)
EF自動生成一個屬性Category1
,這是父類。
爲了清楚起見,我創建另一個屬性
public partial class Category
{
public Category Parent
{
get { return Category1; }
}
}
的問題是,這個工程
var categs = ctx.Categories.Where(x => x.Category1 == null);
但這不起作用
var categs = ctx.Categories.Where(x => x.Parent == null);
的指定類型成員'Parent'在LINQ to Entities中不受支持。僅支持初始化程序,實體成員和實體導航屬性。
有沒有什麼辦法可以創建一個可翻譯的屬性(LINQ to SQL)而不用做.ToList()?
編輯:我想避免接觸Model.edmx因爲數據庫開發過程中經常變化和的.edmx往往需要在你的實體數據模型設計(.edmx文件)重新創建
你需要創建一個導航屬性從類別到父母,如外鍵 –
嗨冷告訴,抱歉,我不知道你的意思。已經有一個外鍵(否則EF不會創建Category1) – Aximili
您是否真的在Model.Designer.cs和/或Reflector中查看'Category1'以查看添加到其定義中的屬性或其他工具? –