在存储库模式中使用UnitOfWork的正确方法

时间:2015-11-14 21:27:20

标签: asp.net repository unit-of-work

我正在尝试按照有关在MSDN上使用工作单元和存储库模式的教程,但我偶然发现了以下内容:

private UnitOfWork unitOfWork = new UnitOfWork();

“这段代码为UnitOfWork类添加了一个类变量。(如果你在这里使用接口,你不会在这里初始化变量;相反,你将实现两个构造函数的模式”

基本上,我需要在我的LogController中调用我的UnitOfWork类,而不是实际使用上面的代码,因为我正在使用接口?这怎么可能?我不确定“两个建设者”是什么意思。

任何建议都会受到启发

1 个答案:

答案 0 :(得分:0)

在课堂上定义

Private IUnitOfWork _unitOfWork = null;

你有一个接受IUnitOfWork的构造函数,所以调用者可以传入一个实现:

Public MyClass (IUnitOfWork unitOfWork) {
  _unitOfWork = unitOfWork;
}

你有另一个没有,但知道如何去找到要创建的实现。要么它可以使用默认实现,要么它可以转到您编写的某个配置文件以定义要使用的类型等。

在MyClass中你仍然可以调用_unitOfWork.whateverMethod()