如何用EF和LINQ代替ado.net和sql.net
本文关键字:net ado sql 代替 LINQ 何用 EF | 更新日期: 2023-09-27 17:50:04
我有一个用sql写在ado.net的旧代码,我想用EF和linq来改变,这里的表我使用的是GP_REGION
,我想完成var test = db3.GP_REGION.Where(aa=>aa.??????????);
行谁能取代旧的ado.net代码
这是完整的代码
GPentities db1 = new GPentities();
var test = db3.GP_REGION.Where(aa=>aa.??????????);
//this is the line which i want to complete
以下是现有的SQL代码
SELECT distinct GP_REGION.REGION_MAIN Region_Code,
R1.REGION_NAME FROM GP_REGION INNER JOIN GP_REGION R1
ON GP_REGION.REGION_MAIN = R1.REGION_CODE WHERE GP_REGION.REGION_HAS_DATA='Y'
AND GP_REGION.REGION_MAIN IN (SELECT DISTINCT AR.BRANCH_CODE FROM PORTAL.UA_APPLN_ROLE AR
INNER JOIN PORTAL.UA_GROUP G ON AR.GROUP_CODE = G.GROUP_CODE
WHERE G.USER_ID = '" + Global.UserId() + "' AND AR.APPLICATION_ID = '" + ApplicationId + "') ORDER BY GP_REGION.REGION_MAIN",
"REGION_NAME", "Region_Code", ref ErrorMessage, true);
和下面是表结构
"REGION_CODE" VARCHAR2(3 BYTE) NOT NULL ENABLE,
"REGION_NAME" VARCHAR2(40 BYTE) NOT NULL ENABLE,
"REGION_MAIN" VARCHAR2(3 BYTE),
"REGION_SHORT" VARCHAR2(1 BYTE) NOT NULL ENABLE,
"REGION_HAS_DATA" VARCHAR2(1 BYTE),
"REGION_CRM_CODE" VARCHAR2(3 BYTE),
"REGION_CRM_ID" NUMBER(2,0),
"REGION_IS_SUB" VARCHAR2(1 BYTE),
CONSTRAINT "PK_GP_REGION" PRIMARY KEY ("REGION_CODE")
返工。如果您想更改ADO。NET到EF。更好的选择是将数据集或数据阅读器更改为IEnumerable,然后可以应用Linq。在ADO周围放一个包装。Net for LINQ.
如果你有SQL查询,想转换成等效的LINQ查询,那么。Linqer是一个SQL到LINQ的转换工具。它可以帮助您学习LINQ和转换现有的SQL语句。