2013-07-22 106 views
1

我有兩個表如下:在一對一的關係實體框架保存數據

表1: ID(PK) 名稱

表2: ID(PK) 電子郵件 Table1ID(FK)

我使用Entity Framework保存數據&一旦保存我使用Ajax調用它&在我的視圖中顯示它。但是,外鍵列在視圖中未更新,而其他數據是。我必須手動刷新Web窗體才能看到更新的外鍵值。

下面是從控制器一些代碼:

table2Obj = new Table2Object(); 
table2Obj.Email = emails; 
table2Obj.Table1ID = Convert.ToInt32(ddlReferralTypes); 
Context.Table2Objects.Add(table2Obj); 
Context.SaveChanges(); 

List<Table2Object> table2Objs = Context.GetTable2Object(); 
string htmlView = RenderPartialViewToString("_ReferralList", table2Objs); 
htmlView = HttpUtility.JavaScriptStringEncode(htmlView); 
return Content("{\"MessageType\":\"success\",\"MessageContent\":\"Referral added successfully\",\"htmlPartialView\":\"" + htmlView + "\"}"); 

這是視圖的樣子:

@model List<MyModels.Models.Table2Object> 
    @foreach (var item in Model) 
    { 
    //display data 
Email: @Html.DisplayFor(modelItem => item.Email) 
Referral: @Html.DisplayFor(modelItem => item.Table2.Name) 
    } 
+0

SaveChanges()方法調用後,您使用Context.GetTable2Oject()獲取更新的數據。 GetTable2Object()方法是什麼樣的? – dotnetesse

+0

它使用簡單的Linq語句返回表2中的所有記錄:return this.Table2Objects.ToList(); –

回答

0

您是否嘗試過使用.Include()方法?我想在你的情況將是:

this.Table2Objects.Include("Email").ToList(); 

或者

this.Table2Objects.Include(t => t.Email).ToList(); 

希望幫助。

相關問題