如何在数据库中搜索与帖子相关的标签
本文关键字:标签 数据库 搜索 | 更新日期: 2023-09-27 18:21:29
我有一个帖子和标签类
public class Post
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public DateTime DateTime { get; set; }
public string Body { get; set; }
public virtual ICollection<Tag> Tags
{
get
{
if (_tags == null)
{
_tags = new Collection<Tag>();
}
return _tags;
}
set { _tags = value; }
}
private ICollection<Tag> _tags;
}
public class Tag
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(50)]
[Index(IsUnique = true)]
public string Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
我正试着通过他们的标签来搜索帖子。
这是我的搜索方法
public ActionResult Search(int id)
{
var posts = from p in db.Posts
from t in db.Tags
where p.Tags.Contains(t)
select p;
foreach (var post in posts)
{
Console.WriteLine(string.Format("Post Name {0}", post.Title));
}
}
但这肯定不会起作用。标签是一个集合。
那么,我如何返回一个帖子列表,其中包含一个带有给定函数id的标签?
var posts = db.Posts.Where(p=>p.Tags.Any(t=>t.id==id));