插入数据库其他控制器

时间:2014-05-27 16:27:53

标签: c# asp.net-mvc entity-framework controller

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

[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);

因此,当我们在不同的控制器中创建这些数据时,我正在寻找一个很好的解决方案,将不同模型的数据(如时间,标题,描述)发布到同一个数据库...

1 个答案:

答案 0 :(得分:0)

由于您的模型之间的类型不匹配以及您的上下文所期望的内容,听起来您有问题。

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

db.Events.Add(reports);
db.SaveChanges();

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

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

相关问题