我的 ASP.NET MVC 项目有一些
章节类
和相关的
标记类
它们具有多对多的关系,虽然一个标签有多个章节,而且一章有多个标签。
我的问题是:我想通过tag.title
在这个结构中使用来进行查询,但 LINQ 不允许对象;它只获取变量,例如string
,int
...等。
我觉得有点愚蠢,但我无法弄清楚这个基本的事情:((也许我必须休息一下,让它在我的脑海中清晰)
我的模型是:
public partial class Chapter
{
public string Id { get; set; }
public string Subject { get; set; }
public string Content { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
public partial class Tag
{
public int? TagId { get; set; }
public string Title { get; set; }
public int CallCount { get; set; }
public virtual ICollection<Chapter> Chapters { get; set; }
}
也适用于分贝:
public class DataContext : DbContext
{
public DbSet<Chapter> Chapters { get; set; }
public DbSet<Tag> Tags { get; set; }
}
所以我们开始:
var tag = (from t in db.Tags where t.Title.Contains(search_word)).FirstOrDefault();
var chapters = (from c in db.Chapters where (m.Title.Contains(search_word) || m.Tags.Contains(tag)) select c).ToList();
正如我上面解释的那样;它给
“你应该在查询中使用字符串、guid、int ...”
此查询的错误。我认为我犯了一个逻辑上的失败,但我的大脑停止了反应......
简要地; 我想按标签名称搜索,如果您有其他方法,我会很高兴听到它。
任何帮助将不胜感激。
谢谢!