asp.net - Entity Framework - 映射不映射存储过程?

标签 asp.net sql-server linq entity-framework stored-procedures

我有一个使用全文搜索 View 的存储过程。
我正在尝试将结果映射到现有实体 (Sales),其中我将列 MivType 映射到 SaleType (因为它使更多感觉,我想让数据库名称远离我的网站)。存储过程映射到函数导入,并且我已将其 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”,我可以解决此问题,但为什么要这样做呢?这不就是映射的目的吗?
这意味着我必须在存储过程和实体上使用完全相同的名称,因此实际上,映射被忽略(我的名称如 YzrNameMivYaad 等,我不喜欢它)。
有没有一个简单的方法可以解决这个问题?我不想在我的应用程序上使用数据库名称,并且不想更改存储过程...
(我应该提到我是 EF 的初学者,所以这可能是一个菜鸟错误)

谢谢。

最佳答案

嗯,实体设计器工作得不太好。我通常尝试在 XML 中完成所有操作。 XML 中有 3 部分。存储(SQL 数据库的表示)。概念(.Net 对象的表示。以及概念到存储的映射

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

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

关于asp.net - Entity Framework - 映射不映射存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000267/

相关文章:

javascript - 在jquery中设置iframe的查询字符串值?

asp.net - 当我在 gridview 中进行排序时,会触发 Gridview RowCommand 事件

sql-server - NVarchar(max) 到 XML 解析错误

c# - 简化我的 C# Linq 语句?

c# - 具有公差的 List<double> 的 GroupBy 不起作用

c# - 可扩展的 Linq 查询

asp.net - 继承自 Control 与 Web Control

javascript - SignalR 不会触发客户端回调

sql-server - 更新堆表 - RID 上的死锁

python - 是否可以在 Django/South 中设置 SQL Server 查询超时?