var users = from user in st.Users
where user.UDID == cr.User.Udid
select user;
var cityIds from city in users.First().Cities
select city.ID;
DoSomethingWith(cityIds);
Run Code Online (Sandbox Code Playgroud)
它始于此查询:
select CityID from UserCities inner join User on User.ID=UserID where User.UDID=@UDID;
我似乎无法使用Linq-to-Entities获得正确的连接语法
使用查询表达式在这里并没有真正帮助你,你也不需要其中两个.这是一个直接的翻译:
var cityIds = st.Users
.Where(user => user.UDID == cr.User.Udid)
.First()
.Cities
.Select(city => city.ID);
Run Code Online (Sandbox Code Playgroud)
现在使用First可以获取谓词的事实,您可以删除Where:
var cityIds = st.Users
.First(user => user.UDID == cr.User.Udid)
.Cities
.Select(city => city.ID);
Run Code Online (Sandbox Code Playgroud)