其实我觉得我可能已经修好了,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
的所有交易答案 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}