我有一个c#mvc项目,其中包含搜索过滤器表单。表table_a和table_c也有2个表多对多关系。 我想在table_c中获取value_table_c linq mvc
table_a
------------
id_table_a
desc_table_a
-------------
table_b
------------
id_table_b
desc_table_b
------------
table_c
------------
id_table_a
id_table_b
value_table_c
-------------
SELECT
table_c.value_table_c
FROM table_c
JOIN table_a ON table_a.id_table_a = table_c.id_table_a
JOIN table_b ON table_b.id_table_b = table_c.id_table_b
WHERE table_a.id_table_a=1;
有人有什么想法吗?
答案 0 :(得分:2)
SELECT
table_c.value_table_c
FROM table_c
JOIN table_a ON table_a.id_table_a = table_c.id_table_a
JOIN table_b ON table_b.id_table_b = table_c.id_table_b
WHERE table_a.id_table_a=1;
到linq
var res = (from c in context.table_c
join a in context.table_a on c.id_table_a = a.id_table_a
join b in context.table_b on c.id_table_b = b.id_table_b
where a.id_table_a = 1
select new
{
c.value_table_c
})
通常你会将“选择新”改为已知类型。
但这就是你如何做你的SQL的内连接linq版本
答案 1 :(得分:0)
在下面的代码中我正在考虑' db'是实体数据库上下文的对象名称。
db.table_c.where(c=>c.table_a != null && c.table_a.id_table_a = 1).select(c=>c.value_table_c)
我不确定你为什么要加入' table_b'因为您没有应用任何过滤器而您没有从中选择任何值。但是如果提到的sql查询是你的要求那么这个linq查询将帮助你,我也假设tablea和b都有引用键。