【问题标题】:How to execute SP using Entity Framework code-first approach?如何使用实体框架代码优先方法执行 SP?
【发布时间】:2013-01-21 13:14:08
【问题描述】:

我在互联网上做了一些研究,以了解如何使用实体框架代码优先方法执行存储过程。但我没有得到任何明确的想法。每个人都在讲述自己的 SP 执行方式。在一些博客中,他们提到了以以下方式执行,而在其他博客中,他们提到了以传统的 ADO.NET 方式。

DbContext.Database.SqlQuery<ProcedureResult>("sp_TestProcedure @param1, @param2",param1val, param2value);

请告诉我执行 SP 的适当方式是什么。我正在使用 MVC3,实体固件代码优先方法。谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 entity-framework c#-4.0 entity-framework-4.1


    【解决方案1】:

    几周前我有同样的问题,并用我最终使用的解决方案更新了我的答案。此后稍微扩大了使用范围,并且对解决方案的清洁程度相对满意。我需要的结果不会映射到我的实体,所以我没有直接返回实体这一事实对我来说并不是一个损失,但如果这是你的意图,在你的情况下可能会很烦人。

    请看这里:Code-First Entity Framework w/ Stored Procedure returning results from complex Full-text Searches

    【讨论】:

    • 补充:如果您的用例与我的不同,我也倾向于使用 .edmx,仅用于下面@Bob-The-Janitor 推荐的存储过程。
    【解决方案2】:

    截至 Entity Framework 5 Stred Procedures 不支持代码优先,我知道人们使用它们的两种最常见的方式是DbContext.Database.SqlQuery,就像你提到的那样,为存储过程设置 .edmx 文件,我个人倾向于倾向于使用 .edmx 文件,但这只是我

    【讨论】:

    • 谢谢.. 我更喜欢第一种方法。在 .edmx 方式中,我们需要创建更多文件来实现这一点。
    【解决方案3】:

    引用朱莉·勒曼 (Julie Lerman) 写的一本书: 虽然 Entity Framework 支持映射到存储过程,但这 Code First 不支持功能。实体框架 团队不打算在 Code First 中添加存储过程支持 英孚 5.0。他们表示没有明确的计划 这将被添加。

    关于 SAFARI 的书籍链接 http://my.safaribooksonline.com/book/-/9781449331825

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      相关资源
      最近更新 更多