C# 用于内部联接以选择特定列的SQL LINQ 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

我试图将下面的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();
城市列表;
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可能有点棘手。谢谢你的帮助!