如何在LINQ to Entity中连接2个表?

时间:2011-12-15 21:58:24

标签: c# linq-to-entities

我有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 个答案:

答案 0 :(得分: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 :(得分:1)

谷歌上的简单搜索有很多例子。这是第一页的一个。 Link

答案 2 :(得分: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()});