我正在尝试将以下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 => venue.venueName,
ev => ev.venueName,
(venue, ev) => new { Venue = venue, Event = ev})
.Where(venueAndev => venueAndev.Venue.venueAddress).ToList();
这是我试图转换成我的问题的另一个问题的解决方案,这显然不起作用,因为我没有得到lambda语法(我今天是全新的)。谷歌的时间没有帮助,也许这里有人可以吗?
答案 0 :(得分:0)
List<String> listOfCities = db.Venue.Join(db.Event,
venue => venue.venueName,
ev => ev.venueName,
(venue, ev) => venue.venueAddress)
.Distinct().ToList();
答案 1 :(得分:0)
您不必使用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();
答案 2 :(得分:0)
试试这个:
List<String> listOfCities;
listOfCities = db.Venue.Join(db.Event,
venue => venue.venueName,
ev => ev.venueName,
(venue, ev) => venue.venueAddress)
.Distinct().ToList();
我在计算机上测试过,但它确实有效。
TResult为第3个lambda函数(venue, ev) => venue.venueAddress)
返回,实际上是重新列表中的对象元素。
我在.Distinct()
之前添加了此.ToList()
,要求提供包含不同元素的列表。