Я знаком с выполнением простых отношений «многие ко многим» (т. Е. С простыми объединениями) в Linq to SQL, но сейчас мне сложно думать.
У меня есть три таблицы (и, следовательно, сущности в моей модели Linq-to-SQL), представляющие таксономическую систему. Стандартный выпуск действительно:
Продукты - ProductTags - Теги
Я пишу метод, который возвращает набор продуктов, где тег, в котором они находятся, соответствует запросу. Поэтому, если кто-то ищет «foo», то будут возвращены все продукты, которым присвоены теги «foobar» или «fooqux» (но не «bazbar»).
Я знаю, что должен структурировать запрос на две части: сначала получить соответствующие теги, а затем получить продукты с этими тегами. Это вторая часть, на которой я поставлен в тупик.
Вот что у меня так далеко:
var tags = from t in db.Tags
where t.Name.Contains( tagSearchQuery )
select t;
var products = from p in db.Products
// then a miracle happens
select p;
Помощь высоко ценится:)