2013-02-19 42 views
1

我正在使用Visual Studio 2012 C#,並試圖在類之間傳遞一些數據。所以基本上,我有兩個班。一個類用於查詢數據,另一個類用於顯示數據(實質上是UI)。使用實體框架在類之間傳遞查詢數據

我猜我需要把它放在某種數據容器中並傳遞它。但是,我目前是一名學生,無法弄清楚做這件事的最好方法。

public List<string> GetDatabyID(int ID) 
{ 
    var context = new Site.EFModel.SiteDBEntities(); 
    var query = context.db.Where(x => x.ID == ID).Select(x => new {x.ID, x.Name}); 
    List<string> dataContainer = query.ToList(); 

    return dataContainer; 
} 

在用戶界面中,我想將這些數據映射到GridView以輸出它。我的代碼顯然是錯誤的。當dataContainer要包含一個int和字符串時,我顯然不能將它作爲List返回。有人有主意嗎?謝謝你。

+0

如果您正在使用x.id和x.name爲什麼不創建X.ID鍵和x.name值或替代字典它來與瞭解創建變量的ID和名稱 – 2013-02-19 18:28:15

回答

1

您正在根據數據庫調用的結果創建一個Anonymous Object。 LINQ的方法Select

Select(x => new {x.ID, x.Name}); 

項目的結果納入您所選擇的新的對象,在這種情況下,一個匿名對象。這應該設置爲創建並返回一個EF實體的列表。

var query = context.db.Where(x => x.ID == ID).Select(
    x => new MyEntity {ID = x.ID, Name = x.Name}); 
List<MyEntity> dataContainer = query.ToList(); 
+0

完美的一類,謝謝。只是設法讓這一切都在今天上午工作。可能是一個簡單的問題,但我學到了很多東西。謝謝! – 2013-02-20 15:43:53