【发布时间】: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