2011-12-15 37 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()});