MVC - 存储库模式

时间:2016-03-30 07:33:46

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

我学习MVC和Repository Pattern,并且不清楚如何获取数据。 (我使用带有DAL的asp.net,其中调用存储过程并返回dataview或数据集) 我想使用jqgrid(datasource JSON)。

  • 我应该使用实体框架推荐只有一个表操作 或者我应该使用Entity Framework来获取复杂类型的数据? (大多数网格都有多个表连接结果集由存储过程返回)
  • 当我使用GetAll,FindBy,Add,Delete,Update方法的通用存储库时,我只需要GetAll方法,用GetAll方法创建另一个通用存储库的最佳方法,并使用它?
  • 如果我想使用具有多个结果集的存储过程,这是达到它的最佳方式吗? (实体框架复杂数据类型只处理一个结果集)

1 个答案:

答案 0 :(得分:1)

问题相当广泛,但是有一些要点可以提供帮助:

  1. 将EF用于大多数简单的东西(加载一些记录,更新一个/两个记录),但在必须编写与数据紧密连接的业务逻辑时使用存储过程(更好的性能)。
  2. 尽可能使用网格视图和必要的程序。如果视图基于大型表,则在发出查询之前应用过滤器以减少查询执行时间,如果可能,则禁用对已连接列的排序。
  3. 如果多个结果集对您非常重要,那么您必须自己使用ADO.NET进行编码,或者在EF生成的实体之上使用一些轻量级ORM(例如Dapper)。使用EF假设您将放弃ADP.NET的某些功能(例如多个结果集和表值参数)。