我想查询我的数据库以查找特定的组以及有关该组的所有评论。我可以使用直接SQL(SqlCommand)轻松完成此操作但是使用linq to sql我遇到了有关查询的select子句的问题。
这些是我的查询创建的DTO:
public class GroupDTO
{
public int GroupId { get; set; }
public String Groupname { get; set; }
public String Description { get; set; }
public List<GroupCommentDTO> GroupComments { get; set; }
public class GroupCommentDTO
{
public int UserId { get; set; }
public String Username { get; set; }
public String Comment { get; set; }
}
}
有谁能请用我的课程向我展示上面的linq to sql方式?这是GroupComments列表我遇到了在同一查询中正确填充的问题。我想选择包含所有评论的所有组,对于每个评论我想要用户名和评论。一个组可能没有注释,因此可能需要左连接。
我尝试过这样的事情。
var query = (from groups in db.Groups
from gc in db.GroupComments
.Where( comment => groups.GroupId == comment.GroupId).DefaultIfEmpty()
from users in db.Users
where users.UserId == gc.UserId
select new GroupDTO
{
GroupId = groups.GroupId,
Groupname = groups.Groupname,
GroupComments = // How can i fill this arraylist of comments?
}).ToList<GroupDTO>();
答案 0 :(得分:0)
应该很容易:
List<GroupCommentDTO> comments = context.Users
.First(x => x.GroupId == groupId)
.GroupComments
除非您的导航属性设置不正确。
答案 1 :(得分:0)