2013-09-26 123 views
0

我是新來的實體框架。這是我的簡單問題。如何從聯合實體(表)創建一個列表類型?

我有自動映射到ADO .NET實體數據模式SQL數據庫,我寫了一個函數

public List<table1> GetTable1()  
{ 
    return (from t in context.table1 select t).ToList(); 
} 

,然後附上數據:

List<table> list1 = GetTable1(); 
GridView1.DataSource = list1; 

,但是當我想用在select語句中加入table1和table2我不知道使用哪種類型的List。

該函數應該返回什麼類型,以便我可以將它附加到我的GridView? 我現在唯一的解決方案是創建數據庫連接這兩個表的視圖,然後更新實體模型,但這可能不是很優雅的方式。

感謝您的幫助:)

+0

所有的表都有相同的模式? –

回答

0

使用Anonimous Type裏面的方法,其中的數據源綁定:

var list1 = (from t in context.table1 select new { ColumnFromTable1 = "whatever", FromOtherTable = "other" }).ToList(); 
GridView1.DataSource = list1; 

當然,你需要知道如何連接表,關鍵的一點是在這裏:

new { ColumnFromTable1 = "whatever", FromOtherTable = "other" } 
+1

注意:一個函數不能返回一個匿名類型,所以創建一個新的類型來返回。或者作爲一個壞習慣,返回Tuple Rudi

+0

絕對正確,「在數據源綁定的方法內」。另一個解決方案是使用動態列表 – Lev