我想做的事情相当简单,虽然我不明白为什么我会收到内部服务器错误。
我正在使用Entity Framework和Database first方法。 我有一个模型客户端对应于数据库表,也在DbContext中声明。
然后我想生成一个带有附加属性的客户端模型,所以我只是扩展了客户端模型。
Client
--id
--name
--lastName
ClientDetails: Client
--IEnumerable<addresses>
然后我只是将对象转换为方法
ClientDetails tempClient = (ClientDetails) repository.getClient(id);
虽然Intelisence没有报告错误,但在运行该功能时出现内部服务器错误。
我进行了一些更改,例如复制模型而不是扩展它,手动投射或在另一个函数中使用Parent模型(这也会返回错误)
我得出的结论是,当父模型被另一个模型扩展时,使用该父模型或子项的所有内容都“失败”。 是否存在Db.Context模型即使外部使用也无法扩展的规则?
答案 0 :(得分:0)
客户端类不是部分的吗?
另一个选项是更改客户端类并添加具有NotMapped属性的属性: http://msdn.microsoft.com/en-us/data/jj591583
更改生成的代码不是一个好主意,但您可以创建自己的客户端类。
不要仅使用继承来扩展EF类,使用您在代码中只需要的属性而不是在数据库中。 如果您需要在数据中继承,请输入以下信息: http://weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph.aspx
如果您不想更改客户端类,也可以将其包装在其他类中。