【发布时间】:2020-06-05 00:01:37
【问题描述】:
我有一个数据库模型,用于类中的列表,但是我从控制器中将其称为单例,但是当模型再次被检索为空时。我认为它是因为我要再次访问页面位置。
public class ElectricianController : Controller {
private IDatabaseService ds;
public IActionResult Index(ElectricianModel model) {
return View(ds.GetAllCircuits());
}
GetAllCircuits 上方的这一点是再次清除列表的地方?
[HttpPost]
public void SaveCircuit(CircuitModel model) {
if (ModelState.IsValid) {
//it wants to be a new record their for add to it
if (model.Id > 0) {
ViewBag.Title = "Update";
ds.UpdateCircuit(model);
} else {
ViewBag.Title = "Create";
ds.AddToCircuits(model);
}
var query = ds.GetAllCircuits();
}
}
这是我的服务。
public class ElectricalSurveyDL : IDatabaseService {
public ApplicationDBContext db;
public List<CircuitModel> CircuitsList;
public ElectricalSurveyDL(ApplicationDBContext dbcontext) {
db = dbcontext;
if(CircuitsList == null)
CircuitsList = new List<CircuitModel>();
}
public void AddToCircuits(CircuitModel model) {
CircuitsList.Add(model);
}
public List<CircuitModel> GetAllCircuits() {
return CircuitsList.ToList();
}
它很好地添加了电路,但是当它返回到页面时,它又破坏了它。 我在 startup.cs 中按如下方式添加我的层
services.AddScoped<IDatabaseService, ElectricalSurveyDL>();
我完成列表的方式不应该意味着它贯穿整个应用程序而不仅仅是页面吗?
> 编辑 2
我更改为以下内容,但现在出现此错误。 services.AddSingleton();
某些服务无法构建(验证时出错 服务描述符'ServiceType: ElectricalSurvey.DAL.IDatabaseService 生命周期:单例 实施类型:ElectricalSurvey.DAL.ElectricalSurveyDL':不能 使用范围服务“ElectricalSurvey.DAL.ApplicationDBContext” 来自单身 'ElectricalSurvey.DAL.IDatabaseService'.)'
【问题讨论】:
标签: c# asp.net-core