c# - 对存储库模式构造函数的困惑

标签 c# model-view-controller

我正在按照 Internet 上的示例在其编写的存储库中实现存储库模式:

 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>();
 }

为什么有两个构造函数?有什么区别?当我实例化它时,我有两个选择,但我不知道它到底做了什么

最佳答案

第一个构造函数实现了一个默认构造函数,它只是生成一个新的 Northwind 对象。

第二个构造函数将 Northwind 对象作为参数,并允许您将先前创建的 Northwind 对象传递给 Repository 构造函数。

如果你要这样做......

Northwind db = new Northwind();
Repository repo = new Repository(db);

这与调用...相同

Repository repo = new Repository();

当您已经创建并填充了第二个构造函数,或者对您创建的 Northwind 对象做了一些事情时,您通常会使用第二个构造函数(如果不知道 Northwind 的实现则很难知道。)

关于c# - 对存储库模式构造函数的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51444634/

相关文章:

c# - 在 c# 中的 linq-to-xml 中的 'and' 和 'or' 过滤器之间更改

mysql - 覆盖 Controller /模块以创建产品

javascript - Ember.js:内联 Handlebars 模板在应用程序的根元素处呈现

actionscript-3 - Model View Controller - 在哪里保持简单的逻辑

forms - Html.BeginForm 不输出集合中第一项的表单

c# - C#中的文件创建

c# - 两个键元组的列表或字典

ruby-on-rails - 在 rails 中显示特定用户的博客文章

c# - 通过 JInt 检查有效的 jQuery 代码时出现 "document is not defined"错误?

c# - 为什么我对 Kairos api 的 REST 请求说请求缺少必需的参数?