多个DbSet的存储库模式设计

时间:2014-12-24 05:16:49

标签: c# entity-framework entity-framework-6 repository-pattern repository-design

我正在编写一个MVC 5互联网应用程序,现在我开始为每个控制器编写一个通用的存储库类。

我的问题是:我应该为我DbSet课程中的每个DbContext代码编写不同的存储库吗?

例如,我的DbSets课程中有以下DbContext

public DbSet<File> files { get; set; }

public DbSet<Asset> assets { get; set; }

我是否应该有两个不同的存储库类,一个用于File,另一个用于Asset DbSet?或者可以/应该将它们编码到一个存储库类中吗?

1 个答案:

答案 0 :(得分:1)

真的,

除非你有充分的理由,否则我不会在存储库后面抽象实体框架。你将创造更多的工作,将来让你更难,我相信EF已经是对持久性逻辑的充分抽象。

话虽这么说,如果你想在存储库后面抽象,我会为每个DbSet创建一个单独的类。这样,DbSet就可以成为存储库中的私有属性,您可以直接委托调用。

如果你决定将它们组合成一个类,你的每个方法都必须检查要委托的DbSet。