我正在编写一个MVC 5互联网应用程序,现在我开始为每个控制器编写一个通用的存储库类。
我的问题是:我应该为我DbSet
课程中的每个DbContext
代码编写不同的存储库吗?
例如,我的DbSets
课程中有以下DbContext
:
public DbSet<File> files { get; set; }
public DbSet<Asset> assets { get; set; }
我是否应该有两个不同的存储库类,一个用于File
,另一个用于Asset
DbSet
?或者可以/应该将它们编码到一个存储库类中吗?
答案 0 :(得分:1)
真的,
除非你有充分的理由,否则我不会在存储库后面抽象实体框架。你将创造更多的工作,将来让你更难,我相信EF已经是对持久性逻辑的充分抽象。
话虽这么说,如果你想在存储库后面抽象,我会为每个DbSet创建一个单独的类。这样,DbSet就可以成为存储库中的私有属性,您可以直接委托调用。
如果你决定将它们组合成一个类,你的每个方法都必须检查要委托的DbSet。