我有一些表具有以下结构:
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
的{{1}}匹配id
表中与cat_id
匹配的cat_van_rel
的行传入的{1}}。
以下是一些数据的示例:
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
ven_id
,我应该得到以下行:
1 food 3 water 4 juice
这是我的疑问:
1
但它从cat表中返回所有行。
我该如何解决这个问题?
我有它:
来自cat_ven_rel中的x
其中x.Ven.ven_id == venid
thnx的回复 选择新的{x.cat.cat_name,x.cat.cat_id}
答案 0 :(得分:1)
尝试where x.cat_van_rel.ven_id == venid
(我需要生成的EntityModel类是准确的)
HTH
答案 1 :(得分:0)
你不能在这里使用函数,函数any决定一个序列是否包含任何元素。如果序列包含一个元素它仍然返回true! 你可以尝试:
List<cat> lst = (from x in objEntity.cat
where objEntity.cat_ven_rel.where(y => y.ven.ven_id==venid).select(y => y.cat_id).contains(x.cat_id)
select x).ToList();