Я застрял в этой проблеме на весь день, спасибо, если кто-нибудь может сказать мне, как, Спасибо!
Я использую MVC 3 и настраиваю две модели:
public class Employee
{
[Key]
public virtual int Id { get; set; }
public virtual string Emp_Id { get; set; }
public virtual string Emp_Name { get; set; }
public virtual int Emp_Type { get; set; }
public virtual ICollection<Job> Jobs { get; set; }
}
public class Job
{
[Key]
public virtual int Id { get; set; }
public virtual string SO { get; set; }
public virtual int? Manhour_Type { get; set; }
public virtual DateTime? StartJob { get; set; }
public virtual DateTime? EndJob { get; set; }
public virtual double? Duration { get; set; }
public virtual Employee employee { get; set; }
}
С помощью этого кода создаются две базы данных:
public class JMCDB : DbContext
{
public DbSet<Employee> Employees { get; set; }
public DbSet<Job> Jobs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Job>().HasRequired(j => j.employee).WithMany(e => e.Jobs);
}
}
Я создаю JobController следующим образом:
public class JobController : Controller
{
//
// GET: /Job/
JMCDB _db = new JMCDB();
public ActionResult Index()
{
var job = _db.Jobs;
return View(job);
}
}
В «Представлении» я хочу увидеть имя сотрудника этой конкретной работы:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.SO)
</td>
<td>
@Html.DisplayFor(modelItem => item.Manhour_Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.StartJob)
</td>
<td>
@Html.DisplayFor(modelItem => item.EndJob)
</td>
<td>
@Html.DisplayFor(modelItem => item.employee.Emp_Name)
</td>
<td>
</td>
</tr>
}
Но когда я запускаю программу, возникает ошибка для последней строки кода
"@Html.DisplayFor(modelItem => item.employee.Emp_Name)"
Я не знаю, как решить, Спасибо, если кто-нибудь может сказать мнекак.