加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Entity Framework 4.1通用存储库

发布时间:2020-12-15 17:20:38 所属栏目:百科 来源:网络整理
导读:使用Entity Framework 4.1并尝试在上面创建一个存储库层作为测试.基本上我正在玩它以熟悉,因为我是Entity Framework和存储库模式的新手.我已经按照一些教程并创建了一个通用存储库.存储库的启动方式如下: CentralDataRepositoryEntities CentralDataReposit
使用Entity Framework 4.1并尝试在上面创建一个存储库层作为测试.基本上我正在玩它以熟悉,因为我是Entity Framework和存储库模式的新手.我已经按照一些教程并创建了一个通用存储库.存储库的启动方式如下:

CentralDataRepositoryEntities CentralDataRepositoryEntities = new CentralDataRepositoryEntities();

Repository<Group> Rep = new Repository<Group>(CentralDataRepositoryEntities);
IEnumerable<Group> Groups = Rep.Get<Group>(g => g.JorMGroupId == 114);

Console.WriteLine(Group.Single());

Repository<Job> Rep1 = new Repository<Job>(CentralDataRepositoryEntities);
IEnumerable<Job> Jobs = Rep1.Get<Job>(j => j.jobId == 2138);

Console.WriteLine(Job.Single());

如果我不必每次都启动一个新的存储库,我更喜欢它.有没有办法可以创建存储库然后使用泛型方法?例如.:

Repository Rep = new Repository(CentralDataRepositoryEntities);
IEnumerable<Group> Groups = Rep.Get<Group>(g => g.JorMGroupId == 114);
IEnumerable<Job> Jobs = Rep.Get<Job>(j => j.jobId == 2138);

这是一个好主意吗?为什么要为每种类型创建一个单独的存储库,以及创建多个存储库时的性能如何?

解决方法

拥有这样的存储库将违反 Single responsibility principle.单个存储库应该只负责管理单一类型的实体.

此通用存储库模式仅适用于简单方案.在某些情况下,您需要在存储库中为特定实体提供其他方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读