2011-07-25 9 views
0

私はこの午後中にこの問題に悩まされていました。MVC 3モデル間をナビゲートする際の表示のエラー

私は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; } 
} 
2つのデータベースが、このコードによって生成され

次のように

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

の最後の行のエラーがあります。

+0

Includeメソッドを使用することができますか?エンティティをどのように「ロード」し、例外メッセージは何ですか? – dknaack

答えて

0

あなたはより多くのソースコードを提供してもらえ熱心な負荷にナビゲーションプロパティemployee

public ActionResult Index() 
{ 
    var job = _db.Jobs.Include(job => job.employee); 
    return View(job); 
} 
+0

ありがとうございました!それはうまくいきませんが、うまくいきます。しかし、本当に感謝! –

関連する問題