实体框架 - 使用从不同实体返回相同列名的存储过程

时间:2010-09-04 23:38:47

标签: entity-framework complextype

我有名为Contact和Address的表,它们都有“ModifiedDate”列。我已经使用存储过程编写了CUD操作。但是,当我需要使用其地址返回所有联系人的SELECT存储过程时,我收到了错误。

  

System.Data.EntityCommandExecutionException:   数据阅读器不兼容   指定的   'AddressBookModel.SelectAllContactsWithAddresses_Result2'。   类型为“ModifiedDate1”的成员,   没有相应的列   在具有相同名称的数据阅读器中。

我最终更改了存储过程以返回这些列名称的不同别名,更不幸的是,我需要更改模型中实体的属性以匹配所选列。我写了一篇关于这个here的博客文章。 我知道我可以为两个实体单独选择SP(和单独的函数导入)但这只是一种情况,并且在其他情况下也可能发生,因为可能从复杂查询返回相同的列名称来自SP中的多个表。任何人都可以就此提出任何指示吗?

1 个答案:

答案 0 :(得分:1)

我在MS论坛中发布了同样的问题EF here(抱歉交叉发布),主持人确认这是EF中的一个错误并要求我在Microsoft Connect中创建一个错误错误ID是597376,这里是同一个link

来自灵芝孙 主持人MSFT 论坛支持>

Hello,   After some research and test,
> I can repro this issue at my side.  
> It can be a limitation of EF when
> handling stored procedure return
> values.  I would recommend you open a
> ticket at Microsoft Connect to report
> this issue to the product team.   If
> it is convenient, please share us with
> the ticket link here to benefit more
> community members.