我可以将不完整的sproc列映射到实体吗?

时间:2010-02-03 18:39:56

标签: entity-framework

我正在使用Visual Studio 2010的最新测试版和实体框架。它基本上很整洁,但这是我的情况:

  • 我的表格T包含Id列和Name
  • 我有一个自动生成的实体,其IdName属性。
  • 最后,我有一个只从T
  • 中选择Id的存储过程

尝试将我的实体映射到存储过程会产生EntityCommandExecutionException

  

[the entity]的成员'Name'在数据阅读器中没有相应的列名称。

这是有道理的,但是否有某种方法可以从存储过程调用中部分填充我的实体,然后通过第二次查询完全实现它?

九个月前,这个问题的the answer似乎涉及大量的体力劳动。在我的例子中,我们有数百个存储过程,实际上它们都没有返回完整的行。实体框架从那时起已经走了很长一段路,所以我希望有些东西可能会改变。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

一种方法可能是将过程结果映射到复杂类型,然后自定义代码生成以向此类型添加一个方法,该方法将实现整个对象。

有这个想法的一个可能的障碍是我不确定是否可以为复杂类型定制代码生成。您当然可以为实体类型as explained in great detail in this post定制代码生成。看起来您应该能够自定义复杂类型,但我从未尝试过。