Entity Framework数据库第一种方法使用存储过程

时间:2017-03-11 12:07:37

标签: asp.net-mvc-5 entity-framework-6

我希望构建我的MVC5应用程序的数据访问层。在我们的项目中,我们只使用存储过程的数据库第一种方法,因为团队更熟悉SQL,并希望通过存储过程执行所有CRUD操作。

我正在寻找展示这种方法实施的好例子。我想看看实体是如何映射的。因为这将存储在数据库中的过程被映射到.net中的类。

1 个答案:

答案 0 :(得分:0)

我认为你的团队成为"熟练的时间"如果您打算使用它,请使用EF。使用存储过程执行每个单独的CRUD操作不是我要采用的路径。如果存储过程正在执行简单的操作:

Get the company record with ID 1

然后我不会使用存储过程并使用EF。对于更复杂的操作,可以使用存储过程。因此,您和您的团队可能希望让团队工作会话决定何时使用存储过程以及何时不使用存储过程。一旦你决定,整个团队应该坚持这种方法。如果您需要更改它,请举行另一次会议并确保每个人都知道。一旦团队同意,每个人都必须遵循相同的模式。

如何在EF中使用存储过程?

我将从一个测试存储过程开始,看看整个过程是如何工作的。一旦您和您的团队确切知道该流程如何与EF协同工作,然后将设计,约定等组合在一起,那么整个团队应遵循相同的模式。

  1. 编写一个返回结果集的测试存储过程。
  2. 通过从Visual Studio连接到您的数据库来创建EDMX。
  3. 将存储过程添加到EDMX。
  4. 使用模型浏览器添加Function Import。这将在您的上下文中创建一个方法,您可以像任何其他方法一样调用该方法,但在其下方将调用您的存储过程。有关如何执行此步骤的详情,请参阅this答案。
  5. 第4步将根据您的存储过程的结果集创建一个类。
  6. 注意

    您可能需要将此标志设置为off,TEMPORARILY,以便EF根据您的存储过程结果集创建复杂类型。

    SET FMTONLY OFF
    

    有关标志的详情,请参阅this答案。