2010-07-23 84 views
2

我是新来的实体框架4,我想知道,什么是组织我的数据层的最佳方式 - 访问EF4的代码?组织一个EF4数据层?

在这一点上,我的数据层设置是这样的:

  • 数据存储类:举行的EF4的ObjectContext的引用,包含的方法来打开,关闭,并持续了ObjectContext中来存储。

  • 存储库类:每个实体的一个类,具有创建,获取和删除实体对象的方法。

有没有更好的方法来组织EF4的这种功能?我已经找过关于这个主题的文章/博客,但我没有找到太多。有什么建议么?

回答

2

我使用generic repository为实体框架,使访问非常容易。没有必要写一个独立的存储设备为每个实体,只是:

MyDataContext ctx = new MyDataContext(); 
Repository<MyEntity, MyDataContext > myEntityRep = new Repository<MyEntity, MyDataContext>(ctx); 
myEntityRep.Add(new MyEntity() {//property settings}); 

这完全库抽象实体模型,允许用于创建,修改和删除实体。

+0

这是一个很好的观点。我确实使用一个通用的Repository类作为我的Repositories的基类。它消除了Repository类所需的大部分管道代码。我需要的唯一代码是针对特定实体唯一的查询。 – 2010-07-23 16:17:28

+1

好吧,这听起来像我正在使用合理的方法。由于包含代码,选择此答案。任何其他建议非常受欢迎。 – 2010-07-23 16:20:05

1

我更喜欢每个实体类型的存储库类(我知道它们是DataMapper)。所有查询的一类很容易变得过于单一,难以维护。

+0

我认为我们在这一点上达成一致。我为每个“根”实体类型使用单独的Repositorey类;即我将执行查询的类型。 +1对DataMapper的参考 - 谢谢! – 2010-07-23 16:15:20