我可以使用带有导航属性的EF类作为我的控件的数据源吗?

时间:2016-08-16 14:31:46

标签: c# telerik-mvc

我有一个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类映射到另一个类?

1 个答案:

答案 0 :(得分:0)

这种方式不太可能被用作这个更多关于SmartUI反模式和另一个对象,视图模型更好地完成这项工作。字段的映射通常使用诸如Automapper之类的工具来完成。

以下情况可能有助于public static List<MY_CARS> GetAllCars() { using (var context = new Entities()) { return context.MY_CARS.AsNoTracking().ToList(); } }

的应用
{{1}}