gpt4 book ai didi

asp.net-mvc-3 - 如何通过EF调用MVC中的存储过程

转载 作者:行者123 更新时间:2023-12-04 01:18:36 26 4
gpt4 key购买 nike

我在哪里可以通过 获得有关 Entity Framework 的优秀教程存储过程 在MVC框架中?

在这种情况下,当我几乎所有的东西都写在存储过程中时,最好使用企业库。

注意:我使用存储过程是因为它们真的非常复杂,其中一些超过 1000 行。

最佳答案

在这种情况下,MVC 绝对不相关。从 EF 调用存储过程的方式仍然相同。我猜您想在不实际使用实体和 linq-to-entities(主要 EF 功能)的情况下使用存储过程,不是吗?一般你需要:

  • EDMX 文件(ado.net 实体数据模型),您可以在其中从数据库运行更新并添加要使用的所有存储过程。 EDMX 文件也生成导出 ObjectContext和所有实体默认。
  • 接下来你必须去Model Browser and create Function import对于每个程序。函数导入将在派生的 ObjectContext 上创建方法这将允许您像调用任何其他 .net 方法一样调用存储过程。
  • 在函数导入期间,您必须为从存储过程返回的结果集创建复杂类型(它可以自动发生)。

  • 您也根本不必使用函数导入和 you can execute procedures directly通过调用:
  • objectContext.ExecuteSqlCommand("storedProcedureName", SqlParameters)对于未返回记录集的 SP
  • objectContext.ExecuteStoreQuery<ResultType>("storedProcedureName", SqlParameters)用于返回记录集的 SP。 ResultType必须具有与结果集中的列同名的属性。它只能用于平面类型(无嵌套对象)。

  • 使用存储过程时有一些限制:
  • Entity Framework 不喜欢返回动态结果集的存储过程(基于某些条件结果集具有不同的列)
  • Entity Framework 不支持返回多个结果集的存储过程 - 有 EFExtensions确实如此,但它更像是直接执行 ADO.NET。
  • 关于asp.net-mvc-3 - 如何通过EF调用MVC中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6219643/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com