У меня есть несколько таблиц, которые имеют следующую структуру:
cat(
cat_id(pk),
cat_name)
ven(
ven_id(pk),
ven_name)
cat_van_rel(
cat_ven_rel_id,
cat_id(fk),
ven_id(fk))
Учитывая, что ven_id
передано из функции, я хочу строки из cat
, чей id
соответствует cat_id
в таблице cat_van_rel
, которая соответствует ven_id
, который был передан.
Вот пример некоторых данных:
cat:
cat_id cat_name
1 food
2 alcohol
3 water
4 juice
cat_ven_rel:
cat_ven_rel - cat_id - ven_id
1 - 1 - 1
2 - 3 - 1
3 - 4 - 1
4 - 2 - 2
5 - 1 - 2
6 - 4 - 2
Итак, учитывая ven_id
1
, я должен получить следующие строки:
1 food
3 water
4 juice
Это мой запрос:
List<cat> lst = (from x in objEntity.cat
where objEntity.cat_ven_rel.Any(y => y.ven.ven_id==venid)
select x).ToList();
но он возвращает все строки из таблицы cat.
Как я могу это исправить?
Я получил:
из x в cat_ven_rel
где x.Ven.ven_id == venid
Спасибо за ваши ответы
выберите новое {x.cat.cat_name, x.cat.cat_id}