我正在按照其存储库中互联网上的一个示例来实现存储库模式:
private Northwind db = null;
private DbSet<T> table = null;
public Repository()
{
this.db = new Northwind();
table = db.Set<T>();
}
public Repository(Northwind db)
{
this.db = db;
table = db.Set<T>();
}
为什么有两个构造函数?有什么区别?当我实例化它时,我有两个选择,但我不知道它到底能做什么
答案 0 :(得分:1)
第一个构造函数实现一个默认的构造函数,它只是生成一个新的Northwind对象。
第二个构造函数将Northwind对象作为参数,并允许您将先前创建的Northwind对象传递给Repository构造函数。
如果您要这样做...
Northwind db = new Northwind();
Repository repo = new Repository(db);
这与呼叫...相同。
Repository repo = new Repository();
通常,在已经创建并填充了第二个构造函数,或者对创建的Northwind对象进行了某些操作之后(很难知道不知道Northwind的实现情况)。
答案 1 :(得分:0)
您可以在存储库中实例化一个新的上下文,您可以在一个控制器中创建多个存储库。