2011-12-15 70 views
0

我有2個表格。如何在LINQ to Entity中連接2個表格?

TableA :- ID, Name, Type 
TableB :- ID, Name, TableAID 

我想獲得包含TableA.Name,TableB.Name的列的結果列表。 我正在使用實體框架。目前這是我從Table1A獲取數據的方式。

IEnumerable<TableAModel> tableAData = DatabaseContext.FromContext().DatabaseName.TableA.AsEnumerable().Select(tableAData => tableAData.ToModel()); 

我想創建相同的列表這其中也包括TableB.Name,所以我可以在我的網格,顯示?可能嗎?

請讓我知道如何做到這一點?

回答

3

事情是這樣的:

var db = DatabaseContext.FromContext(); 
var result = (from a in db.TableA 
       join b in db.TableB on a.ID equals b.TableAID 
       select new { 
        AID = a.ID, 
        AName = a.Name, 
        AType = a.Type, 
        BName = b.Name}).ToList(); 

編號:join clause (C# Reference)

1

在谷歌一個簡單的搜索有無數的例子。這是第一頁的一頁。 Link

0

你想要這樣的東西,但我不知道你想達到的確切結果,所以很難準確地說。

var db = DatabaseContext.FromContext().DatabaseName; 
var AllData = from A in db.TableA 
       from B in db.TableB 
       where A.ID == B.TableAID 
       select new {A,B}; 
var Result = AllData.AsEnumerable().Select(dat=>new{A=dat.A.ToModel(),B=dat.B.ToModel()});