Таблица:
Элемент
Id
Ключевое слово
Идентификатор
Ключевое слово
ItemKeyword
ItemId
KeywordId
SequenceNumber
<ч />
для поиска товаров по ключевому слову:
Keyword keyword = Keyword.FirstOrDefault(a => a.Keyword
.Equals(input, StringComparison.InvariantCultureIgnoreCase));
IEnumerable<Item> items = keyword.ItemKeyword.OrderBy(a => a.SequenceNumber)
.SelectMany(a => a.Item);
для получения связанных ключевых слов:
IEnumerable<Keyword> relatedKeywords = items.ItemKeyword
.SelectMany(a => a.Keyword)
.Except(keyword);
IEnumerable<Keyword> orderedRelatedKeywords = relatedKeywords
.OrderByDescending(a => relatedKeywords
.Where(b => b
.Keyword.Equals(a.Keyword, StringComparison.InvariantCultureIgnoreCase))
.Count())
.Distinct();
У меня сейчас нет компьютера для разработки, но я надеюсь, что вы поняли мою идею.
Моя настоящая проблема здесь в том, чтобы упорядочить связанные ключи по времени их использования. Есть ли способы, которыми мы могли бы сделать это? Спасибо.