【问题标题】:ASP.NET MVC Deleting row from one table after copying it to another tableASP.NET MVC 在将一个表复制到另一个表后删除该行
【发布时间】:2018-12-10 19:12:44
【问题描述】:

我有一个案例,我试图从表中删除一个项目,但在此之前我想将它复制到另一个表。

这是我的删除方法:

public ActionResult Delete(int id, Car car)
    {
        try
        {
           using (BookCarDBEntities db = new BookCarDBEntities())
            {
                var carToDelete = db.Cars.FirstOrDefault(c => c.Id == id);
                var book = CreateNewBooking(carToDelete);
                db.Bookings.Add(book);

                db.Cars.Remove(carToDelete);

                db.SaveChanges();

                return View(book);
            }
        catch (Exception ex)
        {
            return View(ex + "error");
        }
    }

这是一种将“Car”表转换为“Booking”表的方法:

 private object CreateNewBooking(Car car)
    {
        var bookingCreated = new Booking
        {
            id = car.Id,
            model = car.model,
            make = car.make,
            price = car.price,
            location = car.location
        };

        return bookingCreated;
    }

问题是我得到一个错误:

'System.InvalidOperationException':实体类型 Booking 不是当前上下文模型的一部分。

我该如何解决这个问题?

【问题讨论】:

  • 那么,问题出在哪里? ??
  • 您遇到了什么错误?尝试更改创建方法以返回预订:private Booking CreateNewBooking(Car car){}。您的代码中还有一个错字:您使用booking 删除,但它声明为book
  • 我进行了更改,但当我点击 Delete 时它仍然显示此错误:“视图 'System.InvalidOperationException:实体类型 Booking 不是当前上下文模型的一部分。”
  • @Haldo 知道它是什么吗?
  • @BurimSyla 尝试使用谷歌搜索异常以了解其含义。表 Bookings 是否存在?异常表明它不存在。查看有关实体框架和 MVC 的一些教程。这是一个使用 MVC、EF 和代码的方法:docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…

标签: c# asp.net-mvc model-view-controller copy


【解决方案1】:

您设法修复了错误(在 cmets 中),但我会在此处为其他人发布解决方案。

错误:

'System.InvalidOperationException':实体类型 Booking 不是当前上下文模型的一部分。

可能有几个原因。

  1. 实体已分离或以某种方式丢失了它的引用 在实体框架内。这可以通过刷新 实体。转到 edmx 文件,右键单击设计器表面 并选择Update model from database。如果还是失败了, 删除设计器中的实体(或所有实体),然后更新 来自数据库的模型。

  2. 如果表/实体不存在。在这种情况下,创建表/实体和 更新实体。

  3. 然后在从数据库更新后重建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2012-11-24
    相关资源
    最近更新 更多