我在ado.net中用sql编写了一个旧代码,我想用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")
答案 0 :(得分:0)
这是返工。如果要将ADO.NET更改为EF。更好的选择是将数据集或datareader更改为IEnumerable,然后您可以应用Linq.Put围绕ADO.Net为LINQ提供包装。
如果您有SQL查询并希望转换为等效的LINQ查询。 Doc是一个SQL到LINQ转换器工具。它可以帮助您学习LINQ并转换现有的SQL语句。