3

我对 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 个 int、string 和 string 类型的 IEnumerables 来接近它,如果我能以某种方式从一个查询中填充所有 3 个变量,然后设置 User = new User(name = x , id = x) 等。如

FNameList, LNameList, ID = *insert query here*
4

2 回答 2

7

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

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有一个构造函数接受三个类似的参数,并且属性oFNameLNameID,但你明白了。该select子句可用于将结果转换为您需要的任何格式。

于 2012-07-06T14:37:40.953 回答
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课是什么样子的,但你明白了。

于 2012-07-06T14:37:54.410 回答