0

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

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

明天,我可能想要使用其他一些具体的存储库实现,例如文件系统而不是数据库,因此某些存储库方法(如查找或删除)可能难以完成,因为我的实体没有实现任何关于主外键等的东西. 这意味着我对存储库的实体研究应该寻找与 T 对象参数匹配的所有字段。

那么,为某些接口实现强制执行我的实体是一种好习惯吗?例如:

是否有一些可用的示例或教程?

4

1 回答 1

0

某些存储库方法(如查找或删除)可能难以完成,因为我的实体没有实现任何关于主外键等的内容。这意味着我对存储库的实体研究应该寻找与 T 对象参数匹配的所有字段。

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

于 2013-04-20T10:41:57.810 回答