我可以Linq查询多个变量吗?

时间:2012-07-06 14:33:12

标签: c# sql linq

我对linq有点新鲜,我不确定我的愿望是否可行。我基本上有一个名为User的类,它包含一堆属性。我想只填写我从查询中获取的名称和ID字段。我的查询给了我适当的结果,但我不确定如何将其输入用户。这是我得到的最接近的,但我发现这是不正确的。

 IEnumerable<User> UserList;
 UserList = (from o in dbContext.application_user
             join p in dbContext.project on application_user.user_id = project.project_manager
             select o);

这将返回User_ID,Firstname和Lastname的列表,但它不适合用户。我的用户类有多个变量,所以我想通过调用3个IEnumerables来接近它,类型为int,string和string,如果我可以以某种方式填充一个查询中的所有3个,然后设置User = new User(name = x ,id = x)等。如

FNameList, LNameList, ID = *insert query here*

2 个答案:

答案 0 :(得分:7)

您可以在Linq查询中构建User对象:

IEnumerable<User> UserList;
UserList = (from o in dbContext.application_user
            join p in dbContext.project on application_user.user_id = project.project_manager
            select new User(o.FName, o.LName, o.ID));

这假设User有一个构造函数接受三个参数,o上的属性是FNameLNameID,但是你明白了。 select子句可用于将结果转换为您需要的任何格式。

答案 1 :(得分:2)

您只需使用User转换创建Select的实例。

var userQuery = from o in dbContext.application_user
                join p in dbContext.project on application_user.user_id = project.project_manager
                select o;

IEnumerable<User> UserList = from o in userQuery.ToList()
                             select new User() {Name = o.Lastname, ID = o.user_ID};

我不知道你的User课程是怎样的,但你明白了。