如何将LINQ中的2个表连接到实体

本文关键字:连接 实体 2个 中的 LINQ | 更新日期: 2023-09-27 18:18:04

我有2个表。

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

我想获得包含TableA的列的结果列表。名字,TableB.Name。我正在使用实体框架。目前,这就是我如何从表1a获取数据。

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

我想创建同样的列表,其中也包括TableB。这样我就可以在我的网格中显示它了?这可能吗?

请告诉我该怎么做?

如何将LINQ中的2个表连接到实体

像这样:

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();

在google上简单搜索一下就有很多这样的例子。这是第一页上的一张。链接

你想要这样的东西,但我不知道你想要达到的确切结果,所以很难准确地说出。

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()});