从实体框架获取动态 SQL 结果

发布于 2024-10-24 11:45:28 字数 207 浏览 1 评论 0 原文

我在 WCF 中使用 EF 4。我在数据库端有一个 SP(执行动态 sql),它可以返回 n 个列,其中 n 不确定。因此,当我执行函数导入并指定返回类型为 none 时,它​​会将返回类型设置为 int。我看不到任何其他选择。我可以返回 xml 并这样做,但我不想处理 xml。我只希望它的返回类型为 List>

I'm using EF 4, inside WCF. I've a SP (executes dynamic sql) on db side that can return n number of columns where n is not certain. So when I do function import and say return type none, it makes the return type as int. And I don't see any other option. I can return xml and do that way but I don't want to deal with xml. I just want its return type to be List<object>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

汐鸠 2024-10-31 11:45:28

在这种情况下,您必须退回到 ADO.NET 并通过 SqlCommand + SqlDataReader 执行存储过程。 EF 无法处理因返回列数而异的结果集。在 EF 中执行 SP 始终是强类型的,因此您必须能够将返回的记录映射到实体、复杂类型或自定义类型(EF 会将记录具体化为该类型的实例)。当您没有固定数量的返回列和固定的列名称时,这是不可能的。

In such case you must fall back to ADO.NET and execute stored procedure by SqlCommand + SqlDataReader. EF is not able to handle result set which vary by number of returned columns. Executing SPs in EF is always strongly typed so you must be able to map your returned record to an entity, a complex type or a custom type (EF will materialize record to instance of the type). It is not possible when you don't have fixed number of returned columns and fixed names of columns.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文