【发布时间】:2017-08-01 18:41:27
【问题描述】:
我正在寻找构建我的 MVC5 应用程序的数据访问层。在我们的项目中,我们将采用存储过程的数据库优先方法,因为团队更熟悉 SQL,并且希望通过存储过程执行所有 CRUD 操作。
我正在寻找展示这种方法实施的好例子。我想看看实体是如何映射的。因为这将是数据库中的存储过程被映射到.net 中的类。
【问题讨论】:
标签: asp.net-mvc-5 entity-framework-6
我正在寻找构建我的 MVC5 应用程序的数据访问层。在我们的项目中,我们将采用存储过程的数据库优先方法,因为团队更熟悉 SQL,并且希望通过存储过程执行所有 CRUD 操作。
我正在寻找展示这种方法实施的好例子。我想看看实体是如何映射的。因为这将是数据库中的存储过程被映射到.net 中的类。
【问题讨论】:
标签: asp.net-mvc-5 entity-framework-6
如果您打算使用 EF,我认为是时候让您的团队“熟悉”它了。使用存储过程执行每一个 CRUD 操作不是我要采取的路径。如果存储过程正在做一些简单的事情:
Get the company record with ID 1
然后我不会使用存储过程并使用 EF。对于更复杂的操作,可以使用存储过程。因此,您和您的团队可能希望通过团队工作会议来决定何时使用存储过程以及何时不使用。一旦你做出决定,整个团队都应该坚持这种方法。如果您需要更改它,请召开另一次会议并确保每个人都知道。一旦团队同意,每个人都必须遵循相同的模式。
如何在 EF 中使用存储过程?
我会从一个测试存储过程开始,看看整个事情是如何工作的。一旦您和您的团队确切了解该流程如何与 EF 一起使用,然后将设计、约定等放在一起,然后整个团队都应该遵循相同的模式。
Function Import。这将在您的上下文中创建一个方法,您可以像任何其他方法一样调用它,但在它下面将调用您的存储过程。有关如何执行此步骤的更多信息,请参阅this 答案。注意
您可能需要暂时将此标志设置为关闭,以便 EF 根据您的存储过程结果集创建复杂类型。
SET FMTONLY OFF
有关标志的更多信息,请参阅this 答案。
【讨论】: