2 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
由于您正在嘗試在布局(不包含模型)中執(zhí)行數(shù)據(jù)庫(kù)操作,因此依賴注入可以幫助您。
您可以定義一個(gè)具有 DB 訪問方法的類,將其注冊(cè)到您的服務(wù),并從任何 View/Controller/pageModel 輕松使用它的方法
我將用代碼解釋:
這是我們的依賴:
public class MyDependency?
{
? ? // You can use dependency injection in a chained fashion,?
? ? // DBContext is injected in our dependency
? ? private readonly DBContext _dbContext;
? ? public MyDependency(DBContext dbContext)
? ? {
? ? ? ? _dbContext = dbContext;
? ? }
? ? // Define a method that access DB using dbContext
? ? public bool CheckInDb()
? ? {
? ? ? ? return dbContext.SomeCheck();
? ? }
}
將其注冊(cè)到您的服務(wù)中Startup(您的依賴項(xiàng)應(yīng)在注冊(cè) DBContext 后注冊(cè))
public void ConfigureServices(IServiceCollection services)
{
? ? // Some code here
? ? services.AddDbContext<DBContext>(options =>
? ? ? ? options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
? ? services.AddScoped<MyDependency>();
}
然后在你的布局中:
@inject MyDependency MyDependency
@if(MyDependency.CheckInDb())
{
? ? // Do something
}?
else
{
? ? // Do something else
}
- 2 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報(bào)