0

我有 2 个包含唯一数据库存储库的类。两者都与不同的数据库交互。我想将这些存储库合并到一个界面上。这是可能的,还是总是这样,两个类都不会被视为完全实现所有接口成员?

我想要这样的东西,

public class FooDatabase : IFooBarDatabases
{
    public IFooRepository FooRepository { get; set; }
}

public class BarDatabase : IFooBarDatabases
{
    public IBarRepository BarRepository { get; set; }
}

public interface IFooBarDatabases
{
    IFooRepository FooRepository { get; }

    IBarRepository BarRepository { get; }
}
4

1 回答 1

1

存储库应该是“数据库独立的”

存储库在域和数据映射层之间进行调解,就像内存中的域对象集合一样。客户端对象以声明方式构造查询规范,并将它们提交给 Repository 以获得满意。对象可以添加到存储库中,也可以从存储库中删除,就像它们可以从简单的对象集合中一样,存储库封装的映射代码将在幕后执行适当的操作

现在,您将如何创建您的存储库的方式实际上取决于您的域,而不是将命中哪个数据库:存储库不应该关心将命中哪个数据库

http://martinfowler.com/eaaCatalog/repository.html

于 2012-05-09T16:20:11.000 回答