簡體   English   中英

我可以將具有導航屬性的EF類用作控件的數據源嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM