Entity Framework 的 MVC 继承:如何构建派生类型?
MVC Inheritance with Entity Framework: How do I scaffold a derived type?
有人请指出 .net 控制器和派生视图的示例代码方向 classes...
(您可能会认为会有大量资源,但我没有找到...)
在项目中,我有一个从抽象 class 派生的 class,EF 映射了一个 table-per-hierarchy 数据库,并且在运行时数据库看起来像预期的那样 "UserTypeId" 鉴别器.
我已经克服了初始编译和运行时错误...
我尝试基于派生的 class 构建控制器脚手架,但这显然使控制器 ActionResult 需要像
这样的转换
Parent parent = db.AbstractPersons.OfType<Parent>().Single(p => p.AbstractPersonId == id);
此外,索引视图中存在运行时错误,因此我使用
更新了视图
@model IList<BeyondThemes.BeyondAdmin.Models.CardCore.Parent>
那么模型没有正确渲染所需的属性。
似乎很多人都解决了这个问题,但 ContosoU 示例(和其他示例)都没有描述如何在创建继承层次结构后为模型构建控制器和视图。
我也有兴趣了解 EF6 是否以与抽象 classes 相同的方式处理接口,并且很高兴看到每个类型 Table 的示例(甚至 Table 每个混凝土 Class).
最新的错误是
错误表明您正在传递 IList<Parent>
类型的 Model
,但您将模型视为单个元素,而不是集合。如果您计划传递多个项目,则需要添加一个 foreach
语句来遍历集合。如果您想要单个项目,则需要更改模型定义以仅获取单个项目(并将其从控制器传递到视图)。
您从控制器传递的类型(父级)与视图的模型(IList)不匹配
有人请指出 .net 控制器和派生视图的示例代码方向 classes...
(您可能会认为会有大量资源,但我没有找到...)
在项目中,我有一个从抽象 class 派生的 class,EF 映射了一个 table-per-hierarchy 数据库,并且在运行时数据库看起来像预期的那样 "UserTypeId" 鉴别器.
我已经克服了初始编译和运行时错误...
我尝试基于派生的 class 构建控制器脚手架,但这显然使控制器 ActionResult 需要像
这样的转换Parent parent = db.AbstractPersons.OfType<Parent>().Single(p => p.AbstractPersonId == id);
此外,索引视图中存在运行时错误,因此我使用
更新了视图@model IList<BeyondThemes.BeyondAdmin.Models.CardCore.Parent>
那么模型没有正确渲染所需的属性。
似乎很多人都解决了这个问题,但 ContosoU 示例(和其他示例)都没有描述如何在创建继承层次结构后为模型构建控制器和视图。
我也有兴趣了解 EF6 是否以与抽象 classes 相同的方式处理接口,并且很高兴看到每个类型 Table 的示例(甚至 Table 每个混凝土 Class).
最新的错误是
错误表明您正在传递 IList<Parent>
类型的 Model
,但您将模型视为单个元素,而不是集合。如果您计划传递多个项目,则需要添加一个 foreach
语句来遍历集合。如果您想要单个项目,则需要更改模型定义以仅获取单个项目(并将其从控制器传递到视图)。
您从控制器传递的类型(父级)与视图的模型(IList)不匹配