如何使用 LinQ To Entities 从多个表中获取数据行
How to get rows of Data from Multiple Tables using LinQ To Entities
我正在使用 dbcontext Code first 获取基于此条件的查询,用于下面的 类(表):
创作者 != null && ArticleAttached != null && !IsCancelled
var ArticleStudentLiked = dbcontext.LearningActivites
.Where(la => la.Creator != null && la.ArticleAttached != null && !la.IsCancelled)
.Sum(la => la.ArticleAttached.StudentsLiked.Count);
var NewsArticleComment = dbcontext.LearningActivites
.Where(la => la.Creator != null && la.ArticleAttached != null && !la.IsCancelled)
.Sum(la => la.ArticleAttached.Comments.Count);
仅以下方法 return 算作:
- ArticleStudentLiked
- 文章评论
我需要从查询中获取记录行到单个 collection 中,我可以将其传递给视图以逐行显示
像这样:
文章标题、点赞数、评论数
如何使用 LinQ 获取这些:文章标题,编号。点赞数,评论数
Classes:
public class LearningActivity
{
public virtual ArticleCreator Creator { get; set; }
public virtual ArticleCreator EditedBy { get; set; }
public virtual Teacher CreatedByTeacher { get; set; }
public virtual Article ArticleAttached { get; set; }
public virtual Article ArticleAttachedByOther { get; set; }
public bool IsCancelled { get; set; }
}
public class Article
{
public string ArticleTitle {get;set;}
public virtual IList<Teacher> TeachersLiked { get; set; }
public virtual IList<Student> StudentsLiked { get; set; }
public virtual IList<ArticleComment> Comments { get; set; }
}
public class Student
{
public virtual IList<ArticleCommentStudent> Comments { get; set; }
}
谢谢
你能试试这个吗
// LikeCount is total of Teacher and Student Likes
// and where clause can be added before Select
var result = dbcontext.Classes
.Select(x=> new { ArticleTitle = x.ArticleTitle,
LikeCount = x.TeachersLiked.Count() + x.StudentsLiked.Count(),
CommentCount= x.Comments.Count }).First();
我正在使用 dbcontext Code first 获取基于此条件的查询,用于下面的 类(表):
创作者 != null && ArticleAttached != null && !IsCancelled
var ArticleStudentLiked = dbcontext.LearningActivites
.Where(la => la.Creator != null && la.ArticleAttached != null && !la.IsCancelled)
.Sum(la => la.ArticleAttached.StudentsLiked.Count);
var NewsArticleComment = dbcontext.LearningActivites
.Where(la => la.Creator != null && la.ArticleAttached != null && !la.IsCancelled)
.Sum(la => la.ArticleAttached.Comments.Count);
仅以下方法 return 算作:
- ArticleStudentLiked
- 文章评论
我需要从查询中获取记录行到单个 collection 中,我可以将其传递给视图以逐行显示
像这样:
文章标题、点赞数、评论数
如何使用 LinQ 获取这些:文章标题,编号。点赞数,评论数
Classes:
public class LearningActivity
{
public virtual ArticleCreator Creator { get; set; }
public virtual ArticleCreator EditedBy { get; set; }
public virtual Teacher CreatedByTeacher { get; set; }
public virtual Article ArticleAttached { get; set; }
public virtual Article ArticleAttachedByOther { get; set; }
public bool IsCancelled { get; set; }
}
public class Article
{
public string ArticleTitle {get;set;}
public virtual IList<Teacher> TeachersLiked { get; set; }
public virtual IList<Student> StudentsLiked { get; set; }
public virtual IList<ArticleComment> Comments { get; set; }
}
public class Student
{
public virtual IList<ArticleCommentStudent> Comments { get; set; }
}
谢谢
你能试试这个吗
// LikeCount is total of Teacher and Student Likes
// and where clause can be added before Select
var result = dbcontext.Classes
.Select(x=> new { ArticleTitle = x.ArticleTitle,
LikeCount = x.TeachersLiked.Count() + x.StudentsLiked.Count(),
CommentCount= x.Comments.Count }).First();