从 LINQ 查询中获取一个字段值
Get one field value from LINQ query
我需要在此 linq 查询中获取 q2.RoomId 的一个值,如下所示,并将其传递给字符串变量。是否可以为 select 设置别名列名?
var result = from q1 in _db.DormApplications
join q2 in _db.DormRooms
on q1.DormRoomId equals q2.Id
where q1.Poster == username && q1.Review == EnableType.YES
&& now > q1.Sdate && now <q1.Edate
select new { q1.Name, q1.Sdate, q1.Edate, q1.DormRoomId,
q2.RoomId };
我试过这个得到 q2.RoomId ,
String room = result[4].ToString();
但是还是不行,请问有人能帮帮我吗?
如果您知道查询只会 return 一行,您可以这样写:
var result = (from q1 in _db.DormApplications
join q2 in _db.DormRooms
on q1.DormRoomId equals q2.Id
where
q1.Poster == username && q1.Review == EnableType.YES
&& now > q1.Sdate && now <q1.Edate
select
new {
q1.Name,
q1.Sdate,
q1.Edate,
q1.DormRoomId,
q2.RoomId
}).FirstOrDefault();
var roomId = result.RoomId;
var Name = result.Name;
我需要在此 linq 查询中获取 q2.RoomId 的一个值,如下所示,并将其传递给字符串变量。是否可以为 select 设置别名列名?
var result = from q1 in _db.DormApplications
join q2 in _db.DormRooms
on q1.DormRoomId equals q2.Id
where q1.Poster == username && q1.Review == EnableType.YES
&& now > q1.Sdate && now <q1.Edate
select new { q1.Name, q1.Sdate, q1.Edate, q1.DormRoomId,
q2.RoomId };
我试过这个得到 q2.RoomId ,
String room = result[4].ToString();
但是还是不行,请问有人能帮帮我吗?
如果您知道查询只会 return 一行,您可以这样写:
var result = (from q1 in _db.DormApplications
join q2 in _db.DormRooms
on q1.DormRoomId equals q2.Id
where
q1.Poster == username && q1.Review == EnableType.YES
&& now > q1.Sdate && now <q1.Edate
select
new {
q1.Name,
q1.Sdate,
q1.Edate,
q1.DormRoomId,
q2.RoomId
}).FirstOrDefault();
var roomId = result.RoomId;
var Name = result.Name;