0

我想做的事情相当简单,尽管我不明白为什么会出现内部服务器错误。

我正在使用带有数据库优先方法的实体框架。我有一个对应于数据库表的模型客户端,也在 DbContext 中声明。

然后我想生成一个带有附加属性的客户端模型,所以我只是扩展了客户端模型。

Client
--id
--name
--lastName

ClientDetails: Client
--IEnumerable<addresses>

然后我只是将对象投射到一个方法中

ClientDetails tempClient = (ClientDetails) repository.getClient(id);

尽管 Intelisence 不报告错误,但在运行该函数时出现内部服务器错误。

我进行了一些更改,例如复制模型而不扩展它、手动转换或在另一个函数中使用父模型(这也会返回错误)

我得出的结论是,当父模型被另一个模型扩展时,使用该父模型或子模型的一切都会“失败”。是否有任何规则即使 Db.Context 模型也不能扩展以供外部使用?

4

1 回答 1

0

Isn't the Client class partial?

An other option is to change the client class and add a property with the NotMapped attribute: http://msdn.microsoft.com/en-us/data/jj591583

It is not a good idea to change generated code, but you could make your own Client class.

Don't use inheritance just to extend an EF class with a property you only need in your code and not in your database. Here is information if you need inheritance in your data: 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

If you don't want to change the client class, you could also wrap it in an other class.

于 2012-12-27T18:30:49.527 回答