MVC5与函数和过程的EF6存储库模式实现

时间:2016-10-31 19:19:23

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

我正在我的大型ASP.NET MVC5应用程序中实现存储库模式。对于表和视图,我认为很好但是我有点混淆如何为导入的函数和过程创建存储库,就像方法一样

_context.spGetSomething(1,"name");

我发现的函数和过程的所有存储库都使用sql命令或sql查询。是否有任何关于进口程序的良好做法的例子?

我的存储库现在看起来像这样

interface IRepository<T>:IDisposable
{
 void Delete(int ID);
 void Update(T entity)
 void Insert(T entity)
 IQueryable Select()
}



public abstract class AbstractRepository<T>:IRepositori<T>
{
         protected MyDbContext context;
         public AbstractRepository(MyDbContext db)
         {
         context= db;
         }

  //interface implementation
}

在控制器中

public MyController:Controller
{
 private IRepository<MyModel> _repository;
 MyController()
{
 _repository= new MyRepository(dbcontext);
}
// some actions 

}

1 个答案:

答案 0 :(得分:0)

我们对存储过程使用特殊/额外的InfoEntity和InfoRepository,这种结论很有用。我们的BaseRepository有两个方法:SelectInfo和ListInfo。

但是我们使用Dapper作为ORM而我没有使用EntityFramework。

其他:您可以使用像Unity这样的IoC容器来插入控制器的构造函数Repository实例。在数据访问层之间提供beter分离,并且可以测试。