微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 实体框架 – 映射不映射存储过程?

我有一个存储过程使用全文搜索视图.
我正在尝试将结果映射到现有的Entity(Sales),在那里我将列MivType映射到SaleType(因为它更有意义,我想保持db名称远离我的网站).存储过程映射到Function Import,我已将其ReturnType定义为Sales.
只要实体具有与字段名称相同的属性名称,这种方法就可以正常工作.

这是我的问题:当我更改属性名称时,运行导入的函数后出现以下错误

The data reader is incompatible with the specified ‘Model.Sale’. A member of the type,‘SaleType’,does not have a corresponding column in the data reader with the same name.

如果我在实体上将属性’SaleType’更改为’MivType’,我可以解决这个问题,但为什么要这样做呢?这不是映射的用途吗?
这意味着我必须在存储过程和实体上使用完全相同的名称,因此实际上,映射被忽略(我有YzrName,MivYaad等名称,我不喜欢它).
一个简单的方法吗?我不想在我的应用程序上使用db名称,并且不想更改存储过程…
(我应该提到我是EF的初学者,所以这可能是一个新手的错误)

谢谢.

解决方法

那么实体设计师并没有很好地工作.我通常会尝试在 XML中执行所有操作.在 XML中有3个部分.存储(sql数据库的表示).概念(您的.Net对象的代表.和概念到存储映射

听起来这个错误出现在您的概念到存储映射中.您可以在概念方面保留属性名称SalesType,但映射必须在概念和存储方面映射正确的名称.

这里有一些文章参考MSDN
http://msdn.microsoft.com/en-us/library/cc716731.aspx

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐