IRepository -实体实现



我使用Repository和UnitOfWork模式是为了维护解耦的代码,并实现一种简单的方法来测试我的应用程序。

内部实现首先使用DB的EntityFramerowk,并且一切正常。

明天,我可能想使用一些其他具体的存储库实现,比如文件系统,而不是数据库,所以像Find或Delete这样的存储库方法可能很难实现,因为我的实体没有实现任何关于主优先键等的东西。这意味着我对存储库的实体研究应该寻找与T对象参数匹配的所有字段。

所以,它是好的实践强制我的实体的一些接口实现?例如:

关于这个有一些可用的例子或教程吗?

一些存储库方法,如Find或Delete,可能很难完成,因为我的实体没有实现任何关于主前缀键等的东西。这意味着我对存储库的实体研究应该寻找与T对象参数匹配的所有字段。

这就是实现存储库的方式。存储库接口(契约)应该忽略底层的实现细节,比如实体框架。只有这样,您才能拥有存储库的不同实现并实现关注点分离。此外,使用存储库的测试代码根本不应该涉及EF或db。

最新更新