(MVC C#)有关维护记录的维护计划系统的建议

时间:2015-09-03 05:57:07

标签: asp.net-mvc entity-framework linq

我有这个维护计划系统,并且我正在使用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; }

}

请帮我拿卡车号。

1 个答案:

答案 0 :(得分:1)

看起来这只是将ID从卡车中取出的问题 - 毕竟,你的奇怪命名的AddJobOrder变量大概是Truck类型或类似的东西。我怀疑你只需要这样的东西:

truck_no = AddJobOrder.id,

毕竟,这就是您之前在查询中获取卡车ID的方式。如果你需要卡车ID,而且已经提供给方法,那么你根本不需要查询的原因并不完全清楚 - 你现在所做的一切都是允许您检查是否这样的记录,尽管您应该通过查看FirstOrDefault是否返回null来实际进行检查。

我也强烈建议您仔细查看您使用的名称,包括大小写和语义名称。 (你的AddJobOrder变量应该被称为truck或类似的声音。它与该方法的名称相同,这一事实令人困惑!)