微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Entity Framework 4.1通用存储库

使用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.单个存储库应该只负责管理单一类型的实体.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐