如何用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")

如何用EF和LINQ代替ado.net和sql.net

返工。如果您想更改ADO。NET到EF。更好的选择是将数据集或数据阅读器更改为IEnumerable,然后可以应用Linq。在ADO周围放一个包装。Net for LINQ.

如果你有SQL查询,想转换成等效的LINQ查询,那么。Linqer是一个SQL到LINQ的转换工具。它可以帮助您学习LINQ和转换现有的SQL语句。