我怎样才能使它更简洁?

问题描述

|
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);
它从以下查询开始:
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);
现在使用the3ѭ可以带谓词的事实,您可以删除the4ѭ:
var cityIds = st.Users
                .First(user => user.UDID == cr.User.Udid)
                .Cities
                .Select(city => city.ID);
    ,        我想出了我想要实现的目标。
var cityIds = from city in st.Users.First(x => x.UDID == cr.User.Udid).Cities
              select city.ID
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...