(MVC C#)Advice on my Maintenance Scheduling system with Maintenance Records

I have this maintenance scheduling system, and in im using MVC C# Entity Framework,

I have this table Truck Table that has - truck id, registration no., kilometer run reading, and i have an JobOrder Table, i want to get the truck id in the truck table so that i can add a JobOrder on a specific Truck i have this JobOrder Controller

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

}

I receive the following error:

Error 4 Cannot implicitly convert type 'Pms_system.truck' to 'int'

This is my model

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; }

}

Please help me to get the truck id.

Jon Skeet
people
quotationmark

It looks like this is just a matter of getting the ID out of the truck - after all, your oddly-named AddJobOrder variable is presumably of type Truck or something similar. I suspect you just need something like:

truck_no = AddJobOrder.id,

After all, that's how you're getting at the truck ID in the query just beforehand. It's not entirely clear why you need the query at all if you only need the truck ID, which has been provided to the method anyway - all you're doing at the moment is allowing you to check whether or not there is such a record, although you should then actually do the check by seeing whether FirstOrDefault returned null.

I would also strongly advise you to take a good look at the names you're using, both in terms of capitalization and semantic names too. (Your AddJobOrder variable should be called truck or something similar by the sounds of it. The fact that it's the same name as the method is doubly confusing!)

people

See more on this question at Stackoverflow