我有一个使用全文搜索视图的存储过程
我正在尝试将结果映射到现有实体(Sales
),我将列MivType
映射到SaleType
(因为它更有意义,我想保留数据库名称)远离我的网站)。存储过程映射到Function Import,我将其ReturnType定义为Sales
只要实体具有与字段名称相同的属性名称,这种方法就可以正常工作。
这是我的问题:当我更改属性的名称时,运行导入的函数后出现以下错误:
数据阅读器与指定的“Model.Sale”不兼容。类型为“SaleType”的成员在数据读取器中没有相应的具有相同名称的列。
如果我在实体上将属性'SaleType'更改为'MivType',我可以解决此问题,但为什么要这样做呢?这不是映射的用途吗?
这意味着我必须在存储过程和实体上使用完全相同的名称,因此实际上,映射被忽略(我有YzrName
,MivYaad
等名称,我不知道喜欢它。)
有一个简单的方法吗?我不想在我的应用程序上使用db名称,并且不想更改存储过程...
(我应该提到我是EF的初学者,所以这可能是一个新手的错误)
感谢。
答案 0 :(得分:4)
实体设计师不能很好地工作。我通常会尝试在XML中执行所有操作。在XML中有3个部分。存储(SQL数据库的表示)。概念(您的.Net对象的代表。和概念到存储映射
听起来错误在于您的概念到存储映射。您可以在概念方面保留属性名称SalesType,但映射必须在概念和存储方面映射正确的名称。
参考MSDN这里有一些文章 http://msdn.microsoft.com/en-us/library/cc716731.aspx