C# 用于内部联接以选择特定列的SQL LINQ Lambda
我试图将下面的SQL查询转换为lambda语法,以便将结果直接转换到列表中C# 用于内部联接以选择特定列的SQL LINQ Lambda,c#,sql,linq,lambda,C#,Sql,Linq,Lambda,我试图将下面的SQL查询转换为lambda语法,以便将结果直接转换到列表中 SELECT DISTINCT Venue.venueAddress FROM Venue INNER JOIN Event ON Venue.venueName = Event.venueName 我现在有以下资料: List<String> listOfCities; listOfCities = db.Venue.Join(db.Event, venue
SELECT DISTINCT Venue.venueAddress
FROM Venue
INNER JOIN Event
ON Venue.venueName = Event.venueName
我现在有以下资料:
List<String> listOfCities;
listOfCities = db.Venue.Join(db.Event,
venue => venue.venueName,
ev => ev.venueName,
(venue, ev) => new { Venue = venue, Event = ev})
.Where(venueAndev => venueAndev.Venue.venueAddress).ToList();
城市列表;
listOfCities=db.vention.Join(db.Event,
地点=>venue.venueName,
ev=>ev.VenuName,
(场馆,电动汽车)=>新建{场馆=场馆,活动=电动汽车})
.Where(venueAndev=>venueAndev.Venue.venueAddress).ToList();
这是另一个问题的解决方案,我试图将其转化为我的问题,但显然不起作用,因为我没有得到lambda语法(从今天起我是全新的)。谷歌的几个小时没有帮助,也许这里有人可以?列出城市列表=db.venture.Join(db.Event,
List<String> listOfCities = db.Venue.Join(db.Event,
venue => venue.venueName,
ev => ev.venueName,
(venue, ev) => venue.venueAddress)
.Distinct().ToList();
地点=>venue.venueName,
ev=>ev.VenuName,
(场馆,电动汽车)=>场馆地址)
.Distinct().ToList();
您不必使用lambda语法:
List<string> listOfCities = (from v in db.Venue
join e in db.Event on v.venuename equals e.venuename
select v.venueaddress).Distinct().ToList();
城市列表=(从数据库中的v开始)
在v.venuename上的db.Event中加入e等于e.venuename
选择v.venueaddress).Distinct().ToList();
试试这个:
List<String> listOfCities;
listOfCities = db.Venue.Join(db.Event,
venue => venue.venueName,
ev => ev.venueName,
(venue, ev) => venue.venueAddress)
.Distinct().ToList();
城市列表;
listOfCities=db.vention.Join(db.Event,
地点=>venue.venueName,
ev=>ev.VenuName,
(场馆,电动汽车)=>场馆地址)
.Distinct().ToList();
我在我的电脑上测试了一下,它成功了。
为第三个lambda函数(场馆,ev)=>venue.venueAddress)
返回的TResult实际上是reterned列表中的对象元素。
我在
.ToList()
之前添加了这个.Distinct()
,以请求具有不同元素的列表。是否使用实体框架?是的!我使用的是实体框架。另一个问题是该字段上是否有外键,以及两个表之间的关系是什么。db.Venue.Where(v=>v.Event.Any()).Select(v=>v.venueaddress).Distinct().ToList()可能也可以。是的,我现在看到,lambda可能有点棘手。谢谢你的帮助!