0
我給你一個CF例如:如何在LINQ To Entity中使用Include方法時不確定它具有指定的導航屬性?
public class MyContext : DbContext
{
public DbSet<A> A { get; set; }
}
public class A
{
public int E { set; get; }
}
public class B : A
{
public int F { set; get; }
}
public class C : A
{
public int G { set; get; }
public virtual D D { set; get; }
}
public class D { }
和查詢是這樣的:
using (var context = new MyContext())
{
var queryResult = context.A.Include("D").Select(a => a);
}
,並拋出這個消息的異常:
一個指定的包含路徑無效。 EntityType'A'不會 聲明名稱爲'D'的導航屬性。
如何解決這個問題只有一個LINQ To Entity查詢?
它永遠不會給任何結果,因爲類型「A」不具有財產「d」和如果條件永遠是假的。即使它可以工作,我也希望查詢的結果包含所有類型爲「A」的實體以及存在的所有派生類型(B和C)。 – jannagy02
'我希望查詢的結果包含所有類型爲'A'的實體以及所有派生類型(B和C)'看起來像你期望用派生類型加載A. 'DbSet A'總是返回A的對象類型。你不會在那裏得到任何B,C。但是你會得到A的所有對象。其中一些與B和C有關,但是你不能直接從A得到B或C. –
context.A.Where(a => a是B)確實如此,但我想自動獲得所有導航屬性 – jannagy02