Sql QUERY转换为ENTITY框架 [英] Sql QUERY converting to ENTITY framework
本文介绍了Sql QUERY转换为ENTITY框架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将sql查询转换为Entity framework。但是我无法转换嵌套查询可以对此有所帮助。
I am trying to convert the sql query to Entity framework.but i am not able to convert the nested query can some one help on this.
AND TMM100_ITEM.itm_int_id IN (SELECT A.itm_int_id FROM TMM500_ITEM_VENDOR A WITH (NOLOCK) WHERE A.mfg_int_id = 666)
< br $>
我的sql查询
My sql query
SELECT TMM100_ITEM.itm_ext_id
FROM TMM100_ITEM WITH (NOLOCK)
JOIN TMM500_ITEM_VENDOR WITH (NOLOCK) ON TMM100_ITEM.itm_int_id = TMM500_ITEM_VENDOR.itm_int_id
AND TMM500_ITEM_VENDOR.vnd_rnk_no = 1
JOIN TMM140_MANUF WITH (NOLOCK) ON TMM500_ITEM_VENDOR.mfg_int_id = TMM140_MANUF.mfg_int_id
JOIN TAP300_VENDOR_MASTER WITH (NOLOCK) ON TMM500_ITEM_VENDOR.vnd_int_id = TAP300_VENDOR_MASTER.vnd_int_id
WHERE TMM100_ITEM.crp_int_id = 18
AND ISNULL(stk_ty_fg, 'S') <> 'C'
AND TMM100_ITEM.row_sta_cd = 'A'
AND TMM100_ITEM.itm_int_id IN (SELECT A.itm_int_id FROM TMM500_ITEM_VENDOR A WITH (NOLOCK) WHERE A.mfg_int_id = 666)
我尝试了什么:
权利框架
What I have tried:
Entitty framework
var Query = (from t100 in context.TMM100_ITEM
join t500 in context.TMM500_ITEM_VENDOR on t100.itm_int_id equals t500.itm_int_id
join t140 in context.TMM140_MANUF on t500.mfg_int_id equals t140.mfg_int_id
join t300 in context.TAP300_VENDOR_MASTER on t500.vnd_int_id equals t300.vnd_int_id
where t100.crp_int_id == 18 && t100.stk_ty_fg != "C" && t100.row_sta_cd == "A" && t140.mfg_int_id == value && t500.vnd_rnk_no == 1 && t500.row_sta_cd == "A"
select t100.itm_int_id);
推荐答案
实现 IN $ c的方法很少实体框架中的$ c>子句。
大多数开发人员建议使用包含() [ ^ ]方法。请参阅:
sql - 实体框架 - 属性IN子句用法 - 堆栈溢出 [ ^ ]
MVC Where实体框架的IN子句| ASP.NET论坛 [ ^ ]
实体框架 - 处理大型'WHERE IN'语句 [ ^ ]
另一种解决方法它是使用其中 [ ^ ] + 任何 [ ^ ]。在这种情况下,实体必须是一个集合:
There's few ways to implementIN
clause in Entity Framework.
Most of developers recommend to use Contains()[^] method. See:
sql - Entity Framework - attribute IN Clause usage - Stack Overflow[^]
MVC Where IN clause for Entity Framework | The ASP.NET Forums[^]
Entity Framework - Dealing with large 'WHERE IN' statements[^]
Another way to resolve it is to use Where[^] + Any[^]. In that case, an entity have to be a collection:
//get all invoices where specific product is on it
var result = DbContext.Invoices.Where(x=>x.Items.Any(y=>y.ProductID==valueToFind));
祝你好运!
Good luck!
这篇关于Sql QUERY转换为ENTITY框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文