根据图片,我设计了3个表,分别是Article、Tag和ArticleTag。
ArticleTag是Article和Tag表之间的关联表。
现在,我想使用Lambda表达式创建一个查询,根据TagId获取文章。
我使用过实体框架6.x
首先,我通过查询根据tagTitle获得TagId。
// tagTitle is a parameter that passed to a method.
// isActiveTag is a parameter that passed to a method.
int currentTagId = DataContextFactory.GetDataContext()
.Tags.Where(p => p.Title == tagTitle && p.IsActive == isActiveTag)
.Select(p => p.Id).SingleOrDefault();
现在我想使用currentTagId获取与之相关的文章。
如何创建查询
Lambda表达式
根据当前TagId获取文章?
public class Tag : Entity, ITag
{
public string Title { get; set; }
public string Description { get; set; }
public bool? IsActive { get; set; }
public virtual ISet<ArticleTag> ArticleTags { get; set; }
public virtual ISet<ProjectTag> ProjectTags { get; set; }
}
public class Article : Entity, IArticle
{
public virtual int? UserMemberShipId { get; set; }
public virtual string Title { get; set; }
public virtual string Summary { get; set; }
public virtual string Description { get; set; }
public virtual decimal? RateCounter { get; set; }
public virtual int? LikeCounter { get; set; }
public virtual bool IsActive { get; set; }
public virtual bool IsActiveNewComment { get; set; }
public virtual ISet<Comment> Comments { get; set; }
public virtual ISet<Rating> Ratings { get; set; }
public virtual ISet<AttachmentFile> AttachmentFiles { get; set; }
public virtual ISet<ArticleTag> ArticleTags { get; set; }
public virtual ISet<ArticleLike> ArticleLikes { get; set; }
}
public class ArticleTag : Entity, IArticleTag
{
public virtual int TagId { get; set; }
public virtual int ArticleId { get; set; }
public virtual Article Article { get; set; }
public virtual Tag Tag { get; set; }
public virtual int? Extra { get; set; }
}