我有这个维护计划系统,并且我正在使用MVC C#Entity Framework,
我有这张桌子 卡车表 - 卡车ID,登记号码,公里运行读数,我有一个JobOrder表,我想在卡车表中获得卡车ID,以便我可以在特定的卡车上添加JobOrder我有这个JobOrder控制器
public ActionResult AddJobOrder(JobOrderModel jo, int id)
{
var AddJobOrder = db.trucks.FirstOrDefault(s => s.id == id);
var addjo = new joborder()
{
truck_no = AddJobOrder,
description = jo.Description,
worked_performed = jo.worked_performed,
quantity = jo.Quantity,
spare_parts = jo.SpareParts,
run = jo.kilometer_run,
date_finished = jo.DateFinished,
date_started = jo.DateFinished,
};
if (!ModelState.IsValid)
{
db.joborders.Add(addjo);
db.SaveChanges();
return View(jo);
}
return View(jo);
}
我收到以下错误:
错误4无法隐式转换类型' Pms_system.truck'到' int'
这是我的模特
public class JobOrderModel
{
public int truck_no { get; set; }
public DateTime DateStarted { get; set; }
public DateTime DateFinished { get; set; }
public string SpareParts { get; set; }
public int Quantity { get; set; }
public string Description { get; set; }
public int kilometer_run { get; set; }
public string worked_performed { get; set; }
}
请帮我拿卡车号。
答案 0 :(得分:1)
看起来这只是将ID从卡车中取出的问题 - 毕竟,你的奇怪命名的AddJobOrder
变量大概是Truck
类型或类似的东西。我怀疑你只需要这样的东西:
truck_no = AddJobOrder.id,
毕竟,这就是您之前在查询中获取卡车ID的方式。如果你只需要卡车ID,而且已经提供给方法,那么你根本不需要查询的原因并不完全清楚 - 你现在所做的一切都是允许您检查是否这样的记录,尽管您应该通过查看FirstOrDefault
是否返回null
来实际进行检查。
我也强烈建议您仔细查看您使用的名称,包括大小写和语义名称。 (你的AddJobOrder
变量应该被称为truck
或类似的声音。它与该方法的名称相同,这一事实令人困惑!)