Sql QUERY转换为ENTITY框架 [英] Sql QUERY converting to ENTITY framework

查看:79
本文介绍了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 子句。



大多数开发人员建议使用包含() [ ^ ]方法。请参阅:

sql - 实体框架 - 属性IN子句用法 - 堆栈溢出 [ ^ ]

MVC Where实体框架的IN子句| ASP.NET论坛 [ ^ ]

实体框架 - 处理大型'WHERE IN'语句 [ ^ ]



另一种解决方法它是使用其中 [ ^ ] + 任何 [ ^ ]。在这种情况下,实体必须是一个集合:

There's few ways to implement IN 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆