У меня есть 2 стола, категории и продукта.Использование «IN» с каркасом лица
Категория имеет название всех категорий, а ProductToCategory - список всех категорий, присвоенных продукту. Он отделен, потому что один продукт может иметь несколько категорий.
Я новичок в структуре сущностей и пытаюсь получить список категорий, присвоенных определенному продукту. Мне нужно вернуть информацию из таблицы Category, но ProductToCategory - это то, где я ищу, чтобы получить то, что назначено.
Я пытаюсь получить все категории, в которых идентификатор категории присваивается определенному идентификатору продукта в таблице ProductTOCategory.
В SQL я введите:
SELECT (Category Fields) FROM Category WHERE Category.Id
IN (SELECT ProductToCategory.CategoryId FROM ProductToCategory
WHERE ProductId = (THE PRODUCT ID))
Или что-то подобное
Все зависит от того, как определена ваша модель. При правильно определенных навигационных свойствах это должно быть так же просто, как 'Products.Find (10) .Categories'. Это может привести к двум вызовам в базе данных, поэтому, возможно, вы захотите сделать что-то вроде: «Категории. Где (c => c.Products.Select (p => p.ProductId) .Contains (10))' – MarcinJuraszek
Сначала вам понадобится набор постоянных значений, затем используйте 'Where (x => list.Contains (x))' для генерации предложения 'IN'. –
Зная, что SQL 'x in (...)' переводит в LINQ '(...). Содержит (x)', вы можете попробовать ввести SQL-запрос в LINQ. –