2014-05-06 98 views
3

在MVC中,我設計了一個視圖,我可以綁定多個表中的數據,即,我得到來自3個不同表的 不同記錄,這些記錄顯示在我的指數。在MVC中編輯時從多個表中獲取數據

現在對編輯的點擊我想這些DATAS發送到編輯視圖,這是我現在面臨trouble.In我的早期形式,我能夠與db.find()是指這樣做只有一個表和基於它的組合鍵我能夠找到與該表相對應的所有數據。

我想從3個表中獲取記錄,點擊編輯,我可以在我的索引視圖中成功綁定。

下面是我的控制器代碼:

objMyObj.MyModel = db.TableName.find(allcompositekeyshere); 

據我,我將無法獲得來自多個表中的記錄與db.find,因爲這將是指只有一個table.So,爲此,我想一些不同的邏輯。 任何幫助將是appreciated.Thanks提前..

下面是我的LINQ查詢與我能夠得到城市表中的所有記錄與國家名稱沿國表和國家的名字從狀態表。

return objSvc.GetCityIndexData().Select(ct => 
        new CityInputModel() 
        { 
         CityID = ct.CityID, 
         StateID = ct.StateID, 
         CountryID = ct.CountryID, 
         Name = ct.Name, 
         CountryName = ct.CountryName, 
         StateName = ct.StateName 
        }).ToList(); 

這工作正常,我在我的索引視圖中顯示記錄。 現在,我想在編輯時在相應的文本框中顯示相同的記錄。

+0

親愛的,你必須使用包含關鍵字 – Developerzzz

+0

檢查@yasser回答這是爲你解決問題 – Developerzzz

+0

如果你能得到的數據顯示可以很好地使用相同的數據在編輯的時間顯示記錄。 – Yasser

回答

2

您可以嘗試使用.Include()來引用您的相關表格。

var items = db.TableName 
       .Include("FTable1") 
       .Include("FTable2") 
       .Where(allcompositekeyshere).ToList(); 

You cannot use Find directly - 查找不適用於includes。

下面介紹一下EF小組說

我們已經決定不執行這一點,因爲語法來調用與包括查找不會比同等LINQ查詢簡單得多:

ctx.Products.Include(p => p.Category).Single(p => p.Id == 3) 

查找還具有從內存中檢索實體的邏輯,如果它已被加載。如果我們需要將實體從內存中拉出來,但是隨後會爲數據庫中的部分或全部相關實體(或相反)觸發,這會變得非常複雜。

+0

偉大的@亞瑟爾是的你是對的 – Developerzzz

+0

首先感謝,在這裏我無法訪問Items屬性。只要我輸入db。我得到所有的表列表,但沒有獲得項目,所以你可以告訴這個項目是什麼?我需要聲明任何東西以訪問Items屬性。 – Saroj

+0

哦,不,..項目只是一個例子。我會改變它以避免對TableName造成更多混淆。 – Yasser

相關問題