По какой-то причине я не могу получить этот запрос правильно, и я не могу понять, почему ...
У меня есть объект с именем «Блог», у которого есть Id, и список «Тегов».,Каждый «тег» имеет идентификатор и свойство «имя».
Поскольку это отношение «многие ко многим», у меня есть еще одна таблица под названием «blog_tags», соединяющая их.
Отображения выглядят следующим образомthis:
public class BlogsMapping : ClassMap<Blog>
{
Table("blogs");
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Content);
HasManyToMany(x => x.Tags)
.Table("Blog_Tags")
.ParentKeyColumn("BlogId")
.ChildKeyColumn("TagId")
.Not.LazyLoad()
.Cascade.All();
}
public class TagsMapping : ClassMap<Tag>
{
Table("tags");
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Name);
}
Я хотел бы получить список блогов, которые имеют все следующие (некоторый список) тегов.
Я хотел бы сделать что-то вроде этого:
public IList<Blog> Filter(string[] tags)
{
var blogs = _session.QueryOver<Blog>()
.Where(x => x.Tags.ContainsAll(tags));
return blogs.ToList();
}
Я пробовал несколько разных способов, но всегда сталкивался с разными и странными ошибками, поэтому я надеялся, что кто-то может просто указать мне правильное направление ...