我有一个挑战。我们有一个最初设计用于 VB6 的数据库,并且大部分功能都位于存储过程中。我无法对存储过程进行更改,因为旧应用程序仍需要工作一段时间,而且我没有自己的数据库副本,我什至可以对其进行短暂修改。
那么是否可以从 EF 执行存储过程,并最好将结果写入 POCO 的数组/集合中?
我已经尝试过数据库优先方法和导入,但 EF 说存储过程不返回任何列,因此无法创建复杂类型。我发现有一些方法可以更改存储过程以使其正常工作,但我无法更改我正在使用的数据库。
另一个挑战是结果中列的名称类似于“上次更改日期”,换句话说就是带有空格。EF 将如何尝试映射这些?它会变成 DataLastChanged 还是可能变成 Data_last_changed?有没有办法用属性标记我的 POCO 来说明它们是如何映射的?
我希望是这样的
var resuls = efContext.ExecuteStoredProcedure<MyPOCOType>("spName",param1, param2, ...);
并让 EF 尽力将结果与类型相匹配。这样的事情存在吗?顺便说一句,我们正在使用 EF4,但我相信 5 可供我们使用。