具有2个内连接的LINQ语句

时间:2011-05-20 15:12:48

标签: c# linq

其实我觉得我可能已经修好了,gona做了一些测试,我会发布我的解决方案如果有效

====================================== 嘿伙计们

我正在将旧的数据库系统迁移到LINQ,但我在转换一些SQL语句时遇到了麻烦,

SELECT * FROM cities 
INNER JOIN deals ON cities.cityId = deals.CityID 
INNER JOIN countries ON cities.countryID = countries.CountryId 
WHERE deals.endDate >= (someDate) 
   AND countries.CountryId = (1) 
   AND deals.soldout = (false)

我做了一些研究,但似乎无法让它发挥作用,这是我提出的LINQ声明,

var deals = from d in db.deals
                     join city in db.cities on d.CityID equals city.cityId
                     join country in db.countries on city.countryID equals country.CountryId
                     where d.endDate > DateTime.Today && country.CountryId == 1 && d.soldOut == false
                     select d;

在LINQ中是否有一些特殊的方法可以使用2个连接?

干杯

抱歉,我遇到了格式错误,

该声明旨在选择城市的countryID = 1

的所有交易

2 个答案:

答案 0 :(得分:2)

如果您有城市的国家/地区代码,则不需要第二次加入...

var deals = from d in db.deals
                 join city in db.cities on d.CityID equals city.cityId
                 where d.endDate > DateTime.Today &&
                 city.CountryId == 1 && d.soldOut == false
                 select d;

答案 1 :(得分:0)

如果您想要涉及所有表中的列,可以使用匿名类型。

select new {d, city, country}