【发布时间】:2021-09-14 13:59:33
【问题描述】:
我已经在我的项目中初始化了 Dbcontext,现在我正在尝试使用其构造函数在一个类中使用 DBContext 对象获取数据,但它没有被初始化并且该对象具有空值。
{
public SSIMContext(DbContextOptions<SSIMContext> DBdata) :
base(DBdata)
{
}
public DbSet<ScvCertificate> ScvCertificates { get; set; }
public DbSet<ReconcileRequests> ReconcileRequests { get; set; }
public DbSet<ResponseToDF> ResponseToDF { get; set; }
}
//在startup.cs中注册SSIMContext
services.AddDbContextPool<SSIMContext>(
data => data.UseSqlServer(Configuration.GetConnectionString("IdracDBConnection")));
//在控制器中为 dbcontext 获取数据按预期工作,但相同的方法在普通类中不起作用
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WebCoreHSMAPI.Models;
namespace WebCoreHSMAPI.DataAccessLayer
{
public class GetResponseMessages
{
public static SSIMContext _context;
public GetResponseMessages(SSIMContext context)
{
_context = context;
}
public static List<ResponseToDF> GetResponseMessage(string MessageType,string ProcessingNode)
{
try
{
List<ResponseToDF> ResponseToDF = _context.ResponseToDF.FromSqlRaw("UP_GET_RESPONSEDATA {0},{1}", MessageType, ProcessingNode).ToList();
return ResponseToDF;
}
catch (Exception ex)
{
throw;
}
}
}
}
//这样调用方法:
public static void GetMessages(string MessageType,string ProcessingNode)
{
try
{
List<ResponseToDF> response = GetResponseMessages.GetResponseMessage(MessageType, ProcessingNode);
}
catch (Exception ex)
{
throw;
}
}
对此的任何帮助将不胜感激..在此先感谢:)
【问题讨论】:
-
如何实例化
GetResponseMessages? (IMO 是用词不当。类是 do 的事物,因此它们应该有一个名词作为名称,而不是动词。它们的方法是动词。)跨度> -
@Rena 按照你的建议对我不起作用,我会发布解决方案
标签: c# asp.net-core entity-framework-core dbcontext