我试图弄清楚这一点,但是我被困住了。
我有一个带有Service / Repo / Api / Angular层的Net Core 2应用程序-但是现在我想“添加”控制台应用程序并访问我已经建立的所有好东西。我似乎陷入了混乱的静态对象和DI和null参数。无论如何,这是我的代码的简化版本。
namespace SimpleExample
{
class Program
{
private static ApplicationDbContext _appDbContext;
public Program(ApplicationDbContext appDbContext)
{
_appDbContext = appDbContext;
}
static void Main(string[] args)
{
var instance = new Program(); // this doesn't work!
var instance = new Program(_appDbContext); // neither does this!
instance.GetData();
}
private void GetData()
{
Console.WriteLine("Let's read some data! Press a key to continue.");
Console.ReadLine();
var data = "my data";
var result = GetId(data);
}
private string GetId(string original)
{
var data = _appDbContext.Data
.Where(x => x.Name == original.Trim)
.FirstOrDefault();
return data;
}
}
}
我正在经典
“非静态字段需要对象引用”
错误。然后,从这里进行研究,我将其更改为静态,然后一切都变为空。
不只是我要注入的DbContext。我也在尝试注入
私人ManagerService _managerService;
但出现相同的错误。
如果我尝试
私有静态ApplicationDbContext _appDbContext = new ApplicationDbContext();
如下面几次建议,那么我得到了错误
没有给出与“ ApplicationDbContext.ApplicationDbContext(DbContextOptions)”所需的形式参数“ options”相对应的参数
相关分类