我是EF新手,遇到了障礙。我試圖獲取從基類型派生的實體類型的導航屬性列表。我打算使用....派生類型的實體框架導航屬性
ObjectContext objectContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)context).ObjectContext;
var entitySetElementType = objectContext.CreateObjectSet<DerivedType>().EntitySet.ElementType;
foreach(var navigationProperty in entitySetElementType.NavigationProperties)
{ //need PropertyInfo here}
這是我學習的地方我無法獲得派生類型的ObjectSet。拋出的異常是
「沒有指定的實體類型 ‘SurveyDALv2.Model.Correspondence’定義EntitySets。如果 ‘SurveyDALv2.Model.Correspondence’是派生類型,使用鹼 類型,而不是「。
我明白我可以使用
objectContext.CreateObjectSet<BaseType>().OfType<DerivedType>()
獲得派生實體的的ObjectQuery但是,這不符合獲得導航屬性的列表(除非我失去了一些東西)幫助。我沒有看到如何訪問派生實體類型的EntitySet.NavigationProperties。
任何幫助,非常感謝。
決不核心上下文嘗試過,但你可以試試這個: 'CreateObjectSet().OfType ()'而不是'CreateObjectSet ()'? –
謝謝,但我正在尋找派生類型實體上定義的導航屬性的列表。這(http://stackoverflow.com/questions/17886725/ef5-how-to-get-list-of-navigation-properties-for-a-domain-object工作正常,以獲得導航屬性的列表,除非它是派生的類型實體)(從marsman的答案) – Michael