将其他控制器插入数据库

本文关键字:数据库 插入 控制器 其他 | 更新日期: 2023-09-27 18:05:19

我目前有一个基本的控制器来创建报告,如:

[HttpPost]
public ActionResult Create(Reports reports)
{
    if (ModelState.IsValid)
    {
        db.Events.Add(reports);
        db.SaveChanges();        
        return RedirectToAction("../Home");
    }
    return View(reports);
}

除此之外,用户可以在每次不同的控制器上创建更多(事件,注释,修复,…)。

现在我还想使用一种日志来存储所有这些操作,所以当用户创建报告时,它必须添加到日志中,但当他创建事件时,添加评论,等等…

那么我如何将这些报告等添加到报告数据库中,但也添加到具有不同字段的日志数据库中,并在日志视图中显示这些?

我想,我只是将我的日志数据库添加到报告控制器中,并在每次创建报告时添加到日志中,但我的日志数据库与我的报告数据库不同,因此会带来麻烦…

//Add reports to logbook 
private Logbook.CalendarDBContext ldb = new Logbook.CalendarDBContext(); 
[HttpPost]
public ActionResult Create(Reports reports)
{
if (ModelState.IsValid)
{
db.Events.Add(reports);
db.SaveChanges();
ldb.Events.Add(reports);

所以我正在寻找一个很好的解决方案,从不同的模型发布(部分)数据(如时间,标题,描述)到相同的数据库,当这些在不同的控制器中创建…

将其他控制器插入数据库

听起来你有一个问题,因为你的模型和你的上下文所期望的类型不匹配。

最简单的解决方案是简单地创建您需要的类型,以便将其添加到数据库中:

db.Events.Add(reports);
db.SaveChanges();
ldb.Events.Add(new WhateverTypeYouNeed() {
    Title = reports.Title,
    Description = reports.Description,
    //Anything else you need
});

我在构建的每个应用程序中都这样做,因为我从控制器中获取的模型总是与数据库需要的模型类型不同。