[英]Can I use EF class with navigational property as a datasource for my control?
我有一個Kendo DrowpDownList,它使用EF類作為數據源。
@(Html.Kendo().DropDownList()
.Name("myCars")
.OptionLabel("--- Select Cars ---")
.DataValueField("ID")
.DataTextField("DESCRIPTION")
.HtmlAttributes(new { style = "width: 500px" })
.DataSource(s =>
{
s.Read(r =>
{
r.Action("GetAllCars", "Home");
});
})
)
當表MY_CARS是唯一的表時,此方法運行良好。
public static List<MY_CARS> GetAllCars()
{
using (var context = new Entities())
{
return context.MY_CARS.ToList();
}
}
更改模型后,相同的代碼將不再起作用。
我將模型更改為:
MY_CARS:
ID NAME DESCRIPTION
MY_USER
ID NAME EMAIL
MY_USER_CARS
ID USER_ID CAR_ID
*USER_ID has a FK to MY_USER.ID
*CAR_ID has a FK to MY_CARS.ID
我相信導航屬性現在給我造成了問題。
有沒有辦法綁定到抑制導航屬性的同一個類,還是必須將MY_CARS類映射到另一個類?
不太可能使用這種方式,因為這更多地是關於SmartUI反模式和另一個對象,視圖模型會更好地做到這一點。 通常使用諸如Automapper之類的工具來完成字段的映射。
應用AsNoTracking()
可能會有所幫助:
public static List<MY_CARS> GetAllCars()
{
using (var context = new Entities())
{
return context.MY_CARS.AsNoTracking().ToList();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.