Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 合并接口上多个类的唯一方法?_C# - Fatal编程技术网

C# 合并接口上多个类的唯一方法?

C# 合并接口上多个类的唯一方法?,c#,C#,我有两个类,它们包含唯一的数据库存储库。两者都与不同的数据库交互。我想将这些存储库合并到一个界面上。这是可能的,还是两个类都不会被认为完全实现了所有接口成员 我想要这样的东西 public class FooDatabase : IFooBarDatabases { public IFooRepository FooRepository { get; set; } } public class BarDatabase : IFooBarDatabases { public IB

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

我想要这样的东西

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; }
}
存储库应该是“独立于数据库的”

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

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


是的,但我无法摆脱这样一个事实:我在不同的数据库中有不同的数据。我不希望消费者必须指定要转到哪个数据库,例如传递连接字符串。我希望为消费者提供一个明显的数据源。