我有以下存储库类:
public class TestRepository
{
private readonly MyDbContext db;
public TestRepository(MyDbContext context)
{
db = context;
}
public Test GetTest(int Id)
{
return db.Test.Find(Id);
}
}
如何从控制器实例化该类?
当我尝试:
TestRepository repo = new TestRepository(MyDbContext);
我收到错误消息MyDbContext是在给定上下文中无效的类型。所以我想知道我应该传递什么参数。
答案 0 :(得分:1)
您需要对此进行更改
new TestRepository(MyDbContext);
为此
new TestRepository(db);
最好的方法是在任何可能的地方使用DI。
您可以在DI容器中注册存储库类,然后在该给定实例上调用您的方法。
将此添加到您的startup.cs
services.AddScoped<TestRepository>();
并在您的控制器中使用它
private readonly TestRepository _testRepository;
public IndexController(TestRepository testRepository)
{
_testRepository = testRepository;
}