我对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*
答案 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
上的属性是FName
,LName
和ID
,但是你明白了。 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
课程是怎样的,但你明白了。