C#中 Linq实现多表查询示例+多个查询条件拼接

本文介绍了如何在C#中使用Linq进行多表联查,包括两表和三表的联合查询,并展示了如何动态添加多个查询条件。同时,文章还提到了在实际操作中应注意的Linq语法细节,如DefaultIfEmpty方法的使用和toList方法的大写问题。

两表联查

                //多表查询示例
                //1、单条件Join
                var bomsetver = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表
                        a => a.Factory,//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY”
                        b => b.Factory,//外键表主键
                        (a, b) => a//查询结果:显示主表的所有字段
                        );
                //2、多条件Join
                var bomsetver2 = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a,b)=>new {a,b }//查询结果:显示主表的所有字段和外键表所有字段
                        );
                //3、多条件Join,返回部分字段
                var bomsetver3 = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new
                        {
                            AID = a.BomSetId,//主表字段,赋别名
                            a.BomSetDesc,//主表字段
                            BID = b.BomSetId,//外键表字段,赋别名
                            b.BomSetVersion//外键表字段
                        });
                //4、TableA Left Join TableB
                var bomsetver4 = ctx.Bomset
                    .GroupJoin(
                        ctx.Bomsetver,
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new { AA=a, BB=b })
                    .SelectMany(
                        ab => ab.BB.DefaultIfEmpty(),//Left Join
                        (a,b) => new
                        {
                            AID = a.AA.BomSetId,//主表字段,赋别名
                            a.AA.BomSetDesc,//主表字段
                            BID = b.BomSetId,//外键表字段,赋别名
                            b.BomSetVersion//外键表字段
                        }).ToList();
                //5、TableA Right Join TableB
                //即TableB Left Join TableA

三表联查:

                //多表查询示例
                //1、单条件Join
                var bomsetver = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表
                        a => a.Factory,//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY”
                        b => b.Factory,//外键表主键
                        (a, b) => a//查询结果:显示主表的所有字段
                        );
                //2、多条件Join
                var bomsetver2 = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a,b)=>new {a,b }//查询结果:显示主表的所有字段和外键表所有字段
                        );
                //3、多条件Join,返回部分字段
                var bomsetver3 = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new
                        {
                            AID = a.BomSetId,//主表字段,赋别名
                            a.BomSetDesc,//主表字段
                            BID = b.BomSetId,//外键表字段,赋别名
                            b.BomSetVersion//外键表字段
                        });
                //4、TableA Left Join TableB
                var bomsetver4 = ctx.Bomset
                    .GroupJoin(
                        ctx.Bomsetver,
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new { AA=a, BB=b })
                    .SelectMany(
                        ab => ab.BB.DefaultIfEmpty(),//Left Join
                        (a,b) => new
                        {
                            AID = a.AA.BomSetId,//主表字段,赋别名
                            a.AA.BomSetDesc,//主表字段
                            BID = b.BomSetId,//外键表字段,赋别名
                            b.BomSetVersion//外键表字段
                        }).ToList();
                //5、TableA Right Join TableB
                //即TableB Left Join TableA
                //6、三表及更多表Join
                var bomsetver6 = ctx.Bomset//主表
                    .Join(
                        ctx.Bomsetver,//外键表一
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new{ a, b })
                    .Join(
                        ctx.Bomsetmtl,//外键表二
                        a => new { f = a.a.Factory, id = a.a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new
                        {
                            AID = a.a.BomSetId,//主表字段,赋别名
                            a.a.BomSetDesc,//主表字段
                            BID = a.b.BomSetId,//外键表字段,赋别名
                            a.b.BomSetVersion,//外键表字段
                            b.PartGrp
                        }).ToList();
                //7、三表及多表Left Join
                var bomsetver7 = ctx.Bomset
                    .GroupJoin(
                        ctx.Bomsetver,
                        a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new { A1 = a, B1 = b })
                    .SelectMany(
                        ab => ab.B1.DefaultIfEmpty(),//Left Join
                        (a, b) => new { A2=a, B2=b })
                    .GroupJoin(
                        ctx.Bomsetmtl,
                        a => new { f = a.A2.A1.Factory, id = a.A2.A1.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
                        b => new { f = b.Factory, id = b.BomSetId },//外键表主键
                        (a, b) => new { A3 = a, B3 = b }
                        )
                    .SelectMany(
                        ab => ab.B3.DefaultIfEmpty(),//Left Join
                        (a, b) => new
                        {
                            AID = a.A3.A2.A1.BomSetId,//主表字段,赋别名
                            a.A3.A2.A1.BomSetDesc,//主表字段
                            BID = a.A3.B2.BomSetId,//外键表字段,赋别名
                            a.A3.B2.BomSetVersion,//外键表字段
                            b.PartGrp
                        }).ToList(); 

查询条件拼接:

 var query = ctx.Almmsghis.Where(t => t.TranTime.CompareTo(sFromTime) >= 0 && t.TranTime.CompareTo(sToTime) <= 0);
            if (sTranTime.Trim() != "")
            {
                query = query.Where(t => t.TranTime.CompareTo(sTranTime) <= 0);
            }
            if (sClearFlag.Trim() == "Y")
            {
                query = query.Where(t => t.ClearFlag.CompareTo(sClearFlag) == 0);
            }
            else if (sClearFlag.Trim() == "N")
            {
                query = query.Where(t => t.ClearFlag.CompareTo(" ") == 0);
            }
            if (sAlarmId.Trim() != "")
            {
                query = query.Where(t => t.ClearFlag.CompareTo(sAlarmId) == 0);
            }
            if (sAlarmType.Trim() != " ")
            {
                query = query.Where(t => t.ClearFlag.CompareTo(sAlarmType) == 0);
            }
            if (sLotId.Trim() != "")
            {
                query = query.Where(t => t.ClearFlag.CompareTo(sLotId) == 0);
            }
            if (sResId.Trim() != "")
            {
                query = query.Where(t => t.ClearFlag.CompareTo(sResId) == 0);
            }
            listAlmmsghis = query.OrderByDescending(t => t.TranTime).ToList();

数组list的定义:

  POPCoreType.POP_Update_Image_In_Tag_item_list[] item_list = new POPCoreType.POP_Update_Image_In_Tag_item_list[]
            {
                new POPCoreType.POP_Update_Image_In_Tag_item_list()
                {
                    seq_num=1,
                    image_data="1"
                },
                new POPCoreType.POP_Update_Image_In_Tag_item_list()
                {
                    seq_num=2,
                    image_data="1"
                },
            };

 

 

三表查询实例(SQL to Linq):

 strQuery = "SELECT FD.FUNC_NAME,"
                                   + " FD.FUNC_DESC,"
                                   + " FD.FUNC_TYPE_FLAG,"
                                   + " FD.CTL_NAME_1,"
                                   + " FD.CTL_NAME_2,"
                                   + " FD.CTL_NAME_3,"
                                   + " FD.CTL_NAME_4,"
                                   + " FD.CTL_NAME_5,"
                                   + " FD.CTL_NAME_6,"
                                   + " FD.CTL_NAME_7,"
                                   + " FD.CTL_NAME_8,"
                                   + " FD.CTL_NAME_9,"
                                   + " FD.CTL_NAME_10,"
                                   + " FD.CTL_NAME_11,"
                                   + " FD.CTL_NAME_12,"
                                   + " FD.CTL_NAME_13,"
                                   + " FD.CTL_NAME_14,"
                                   + " FD.CTL_NAME_15,"
                                   + " FD.CTL_NAME_16,"
                                   + " FD.CTL_NAME_17,"
                                   + " FD.CTL_NAME_18,"
                                   + " FD.CTL_NAME_19,"
                                   + " FD.CTL_NAME_20,"
                                   + " FD.CTL_NAME_21,"
                                   + " FD.CTL_NAME_22,"
                                   + " FD.CTL_NAME_23,"
                                   + " FD.CTL_NAME_24,"
                                   + " FD.CTL_NAME_25,"
                                   + " FD.TAB_NAME_1,"
                                   + " FD.TAB_NAME_2,"
                                   + " FD.TAB_NAME_3,"
                                   + " FD.TAB_NAME_4,"
                                   + " FD.TAB_NAME_5,"
                                   + " FD.TAB_NAME_6,"
                                   + " FD.TAB_NAME_7,"
                                   + " FD.TAB_NAME_8,"
                                   + " FD.TAB_NAME_9,"
                                   + " FD.TAB_NAME_10,"
                                   + " FD.TAB_NAME_11,"
                                   + " FD.TAB_NAME_12,"
                                   + " FD.TAB_NAME_13,"
                                   + " FD.TAB_NAME_14,"
                                   + " FD.TAB_NAME_15,"
                                   + " FD.TAB_NAME_16,"
                                   + " FD.TAB_NAME_17,"
                                   + " FD.TAB_NAME_18,"
                                   + " FD.TAB_NAME_19,"
                                   + " FD.TAB_NAME_20,"
                                   + " FD.TAB_NAME_21,"
                                   + " FD.TAB_NAME_22,"
                                   + " FD.TAB_NAME_23,"
                                   + " FD.TAB_NAME_24,"
                                   + " FD.TAB_NAME_25,"
                                   + " FD.OPT_NAME_1,"
                                   + " FD.OPT_NAME_2,"
                                   + " FD.OPT_NAME_3,"
                                   + " FD.OPT_NAME_4,"
                                   + " FD.OPT_NAME_5,"
                                   + " FD.OPT_NAME_6,"
                                   + " FD.OPT_NAME_7,"
                                   + " FD.OPT_NAME_8,"
                                   + " FD.OPT_NAME_9,"
                                   + " FD.OPT_NAME_10,"
                                   + " FD.OPT_NAME_11,"
                                   + " FD.OPT_NAME_12,"
                                   + " FD.OPT_NAME_13,"
                                   + " FD.OPT_NAME_14,"
                                   + " FD.OPT_NAME_15,"
                                   + " FD.OPT_NAME_16,"
                                   + " FD.OPT_NAME_17,"
                                   + " FD.OPT_NAME_18,"
                                   + " FD.OPT_NAME_19,"
                                   + " FD.OPT_NAME_20,"
                                   + " FD.OPT_NAME_21,"
                                   + " FD.OPT_NAME_22,"
                                   + " FD.OPT_NAME_23,"
                                   + " FD.OPT_NAME_24,"
                                   + " FD.OPT_NAME_25,"
                                   + " FD.FLD_EN_MASK_USE_FLAG,"
                                   + " FD.HELP_URL,"
                                   + " GF.CTL_EN_FLAG_1,"
                                   + " GF.CTL_EN_FLAG_2,"
                                   + " GF.CTL_EN_FLAG_3,"
                                   + " GF.CTL_EN_FLAG_4,"
                                   + " GF.CTL_EN_FLAG_5,"
                                   + " GF.CTL_EN_FLAG_6,"
                                   + " GF.CTL_EN_FLAG_7,"
                                   + " GF.CTL_EN_FLAG_8,"
                                   + " GF.CTL_EN_FLAG_9,"
                                   + " GF.CTL_EN_FLAG_10,"
                                   + " GF.CTL_EN_FLAG_11,"
                                   + " GF.CTL_EN_FLAG_12,"
                                   + " GF.CTL_EN_FLAG_13,"
                                   + " GF.CTL_EN_FLAG_14,"
                                   + " GF.CTL_EN_FLAG_15,"
                                   + " GF.CTL_EN_FLAG_16,"
                                   + " GF.CTL_EN_FLAG_17,"
                                   + " GF.CTL_EN_FLAG_18,"
                                   + " GF.CTL_EN_FLAG_19,"
                                   + " GF.CTL_EN_FLAG_20,"
                                   + " GF.CTL_EN_FLAG_21,"
                                   + " GF.CTL_EN_FLAG_22,"
                                   + " GF.CTL_EN_FLAG_23,"
                                   + " GF.CTL_EN_FLAG_24,"
                                   + " GF.CTL_EN_FLAG_25,"
                                   + " GF.TAB_DS_FLAG_1,"
                                   + " GF.TAB_DS_FLAG_2,"
                                   + " GF.TAB_DS_FLAG_3,"
                                   + " GF.TAB_DS_FLAG_4,"
                                   + " GF.TAB_DS_FLAG_5,"
                                   + " GF.TAB_DS_FLAG_6,"
                                   + " GF.TAB_DS_FLAG_7,"
                                   + " GF.TAB_DS_FLAG_8,"
                                   + " GF.TAB_DS_FLAG_9,"
                                   + " GF.TAB_DS_FLAG_10,"
                                   + " GF.TAB_DS_FLAG_11,"
                                   + " GF.TAB_DS_FLAG_12,"
                                   + " GF.TAB_DS_FLAG_13,"
                                   + " GF.TAB_DS_FLAG_14,"
                                   + " GF.TAB_DS_FLAG_15,"
                                   + " GF.TAB_DS_FLAG_16,"
                                   + " GF.TAB_DS_FLAG_17,"
                                   + " GF.TAB_DS_FLAG_18,"
                                   + " GF.TAB_DS_FLAG_19,"
                                   + " GF.TAB_DS_FLAG_20,"
                                   + " GF.TAB_DS_FLAG_21,"
                                   + " GF.TAB_DS_FLAG_22,"
                                   + " GF.TAB_DS_FLAG_23,"
                                   + " GF.TAB_DS_FLAG_24,"
                                   + " GF.TAB_DS_FLAG_25,"
                                   + " GF.OPT_VALUE_1,"
                                   + " GF.OPT_VALUE_2,"
                                   + " GF.OPT_VALUE_3,"
                                   + " GF.OPT_VALUE_4,"
                                   + " GF.OPT_VALUE_5,"
                                   + " GF.OPT_VALUE_6,"
                                   + " GF.OPT_VALUE_7,"
                                   + " GF.OPT_VALUE_8,"
                                   + " GF.OPT_VALUE_9,"
                                   + " GF.OPT_VALUE_10,"
                                   + " GF.OPT_VALUE_11,"
                                   + " GF.OPT_VALUE_12,"
                                   + " GF.OPT_VALUE_13,"
                                   + " GF.OPT_VALUE_14,"
                                   + " GF.OPT_VALUE_15,"
                                   + " GF.OPT_VALUE_16,"
                                   + " GF.OPT_VALUE_17,"
                                   + " GF.OPT_VALUE_18,"
                                   + " GF.OPT_VALUE_19,"
                                   + " GF.OPT_VALUE_20,"
                                   + " GF.OPT_VALUE_21,"
                                   + " GF.OPT_VALUE_22,"
                                   + " GF.OPT_VALUE_23,"
                                   + " GF.OPT_VALUE_24,"
                                   + " GF.OPT_VALUE_25,"
                                   + " GF.FLD_EN_ALL_FLAG,"
                                   + " GF.FLD_EN_MASK"
                                   + " FROM SECFUNCTION FD, SECGRPFUNCREL GF, SECUSER UD WHERE"
                                   + " UD.FACTORY = ? AND"
                                   + " UD.USER_ID = ? AND"
                                   + " GF.FACTORY = UD.FACTORY AND"
                                   + " GF.SEC_GRP_ID = UD.SEC_GRP_ID AND"
                                   + " FD.FUNC_NAME >= ? AND"
                                   + " FD.FUNC_NAME = GF.FUNC_NAME";

Linq:

var strQery = ctx.Secfunction.Where(t => t.FuncName.CompareTo(sFuncName) >= 0).GroupJoin(
                    ctx.Secgrpfuncrel,
                    (Secfunction a) => new { f = a.FuncName },
                    (Secgrpfuncrel b) => new { f = b.FuncName },
                    (a, b) => new
                    {
                        A1 = a,
                        B1 = b
                    })
                    .SelectMany(
                    ab => ab.B1.DefaultIfEmpty(),
                    (a, b) => new
                    {
                        a.A1.FuncName,
                        a.A1.FuncDesc,
                        a.A1.FuncTypeFlag,
                        a.A1.CtlName1,
                        a.A1.CtlName2,
                        a.A1.CtlName3,
                        a.A1.CtlName4,
                        a.A1.CtlName5,
                        a.A1.CtlName6,
                        a.A1.CtlName7,
                        a.A1.CtlName8,
                        a.A1.CtlName9,
                        a.A1.CtlName10,
                        a.A1.CtlName11,
                        a.A1.CtlName12,
                        a.A1.CtlName13,
                        a.A1.CtlName14,
                        a.A1.CtlName15,
                        a.A1.CtlName16,
                        a.A1.CtlName17,
                        a.A1.CtlName18,
                        a.A1.CtlName19,
                        a.A1.CtlName20,
                        a.A1.CtlName21,
                        a.A1.CtlName22,
                        a.A1.CtlName23,
                        a.A1.CtlName24,
                        a.A1.CtlName25,
                        a.A1.TabName1,
                        a.A1.TabName2,
                        a.A1.TabName3,
                        a.A1.TabName4,
                        a.A1.TabName5,
                        a.A1.TabName6,
                        a.A1.TabName7,
                        a.A1.TabName8,
                        a.A1.TabName9,
                        a.A1.TabName10,
                        a.A1.TabName11,
                        a.A1.TabName12,
                        a.A1.TabName13,
                        a.A1.TabName14,
                        a.A1.TabName15,
                        a.A1.TabName16,
                        a.A1.TabName17,
                        a.A1.TabName18,
                        a.A1.TabName19,
                        a.A1.TabName20,
                        a.A1.TabName21,
                        a.A1.TabName22,
                        a.A1.TabName23,
                        a.A1.TabName24,
                        a.A1.TabName25,
                        a.A1.OptName1,
                        a.A1.OptName2,
                        a.A1.OptName3,
                        a.A1.OptName4,
                        a.A1.OptName5,
                        a.A1.OptName6,
                        a.A1.OptName7,
                        a.A1.OptName8,
                        a.A1.OptName9,
                        a.A1.OptName10,
                        a.A1.OptName11,
                        a.A1.OptName12,
                        a.A1.OptName13,
                        a.A1.OptName14,
                        a.A1.OptName15,
                        a.A1.OptName16,
                        a.A1.OptName17,
                        a.A1.OptName18,
                        a.A1.OptName19,
                        a.A1.OptName20,
                        a.A1.OptName21,
                        a.A1.OptName22,
                        a.A1.OptName23,
                        a.A1.OptName24,
                        a.A1.OptName25,
                        a.A1.FldEnMaskUseFlag,
                        a.A1.HelpUrl,
                        b.CtlEnFlag1,
                        b.CtlEnFlag2,
                        b.CtlEnFlag3,
                        b.CtlEnFlag4,
                        b.CtlEnFlag5,
                        b.CtlEnFlag6,
                        b.CtlEnFlag7,
                        b.CtlEnFlag8,
                        b.CtlEnFlag9,
                        b.CtlEnFlag10,
                        b.CtlEnFlag11,
                        b.CtlEnFlag12,
                        b.CtlEnFlag13,
                        b.CtlEnFlag14,
                        b.CtlEnFlag15,
                        b.CtlEnFlag16,
                        b.CtlEnFlag17,
                        b.CtlEnFlag18,
                        b.CtlEnFlag19,
                        b.CtlEnFlag20,
                        b.CtlEnFlag21,
                        b.CtlEnFlag22,
                        b.CtlEnFlag23,
                        b.CtlEnFlag24,
                        b.CtlEnFlag25,
                        b.TabDsFlag1,
                        b.TabDsFlag2,
                        b.TabDsFlag3,
                        b.TabDsFlag4,
                        b.TabDsFlag5,
                        b.TabDsFlag6,
                        b.TabDsFlag7,
                        b.TabDsFlag8,
                        b.TabDsFlag9,
                        b.TabDsFlag10,
                        b.TabDsFlag11,
                        b.TabDsFlag12,
                        b.TabDsFlag13,
                        b.TabDsFlag14,
                        b.TabDsFlag15,
                        b.TabDsFlag16,
                        b.TabDsFlag17,
                        b.TabDsFlag18,
                        b.TabDsFlag19,
                        b.TabDsFlag20,
                        b.TabDsFlag21,
                        b.TabDsFlag22,
                        b.TabDsFlag23,
                        b.TabDsFlag24,
                        b.TabDsFlag25,
                        b.OptValue1,
                        b.OptValue2,
                        b.OptValue3,
                        b.OptValue4,
                        b.OptValue5,
                        b.OptValue6,
                        b.OptValue7,
                        b.OptValue8,
                        b.OptValue9,
                        b.OptValue10,
                        b.OptValue11,
                        b.OptValue12,
                        b.OptValue13,
                        b.OptValue14,
                        b.OptValue15,
                        b.OptValue16,
                        b.OptValue17,
                        b.OptValue18,
                        b.OptValue19,
                        b.OptValue20,
                        b.OptValue21,
                        b.OptValue22,
                        b.OptValue23,
                        b.OptValue24,
                        b.OptValue25,
                        b.FldEnAllFlag,
                        b.FldEnMask,
                        b.Factory,
                        b.SecGrpId
                    }).GroupJoin(
                    ctx.Secuser,
                    a => new { f = a.Factory, id = a.SecGrpId },
                    b => new { f = b.Factory, id = b.SecGrpId },
                    (a, b) => new { A3 = a , B3 = b }
                    )
                    .SelectMany(
                    ab => ab.B3.DefaultIfEmpty(),
                    (a, b) => new
                    {
                        a.A3.FuncName,
                        a.A3.FuncDesc,
                        a.A3.FuncTypeFlag,
                        a.A3.CtlName1,
                        a.A3.CtlName2,
                        a.A3.CtlName3,
                        a.A3.CtlName4,
                        a.A3.CtlName5,
                        a.A3.CtlName6,
                        a.A3.CtlName7,
                        a.A3.CtlName8,
                        a.A3.CtlName9,
                        a.A3.CtlName10,
                        a.A3.CtlName11,
                        a.A3.CtlName12,
                        a.A3.CtlName13,
                        a.A3.CtlName14,
                        a.A3.CtlName15,
                        a.A3.CtlName16,
                        a.A3.CtlName17,
                        a.A3.CtlName18,
                        a.A3.CtlName19,
                        a.A3.CtlName20,
                        a.A3.CtlName21,
                        a.A3.CtlName22,
                        a.A3.CtlName23,
                        a.A3.CtlName24,
                        a.A3.CtlName25,
                        a.A3.TabName1,
                        a.A3.TabName2,
                        a.A3.TabName3,
                        a.A3.TabName4,
                        a.A3.TabName5,
                        a.A3.TabName6,
                        a.A3.TabName7,
                        a.A3.TabName8,
                        a.A3.TabName9,
                        a.A3.TabName10,
                        a.A3.TabName11,
                        a.A3.TabName12,
                        a.A3.TabName13,
                        a.A3.TabName14,
                        a.A3.TabName15,
                        a.A3.TabName16,
                        a.A3.TabName17,
                        a.A3.TabName18,
                        a.A3.TabName19,
                        a.A3.TabName20,
                        a.A3.TabName21,
                        a.A3.TabName22,
                        a.A3.TabName23,
                        a.A3.TabName24,
                        a.A3.TabName25,
                        a.A3.OptName1,
                        a.A3.OptName2,
                        a.A3.OptName3,
                        a.A3.OptName4,
                        a.A3.OptName5,
                        a.A3.OptName6,
                        a.A3.OptName7,
                        a.A3.OptName8,
                        a.A3.OptName9,
                        a.A3.OptName10,
                        a.A3.OptName11,
                        a.A3.OptName12,
                        a.A3.OptName13,
                        a.A3.OptName14,
                        a.A3.OptName15,
                        a.A3.OptName16,
                        a.A3.OptName17,
                        a.A3.OptName18,
                        a.A3.OptName19,
                        a.A3.OptName20,
                        a.A3.OptName21,
                        a.A3.OptName22,
                        a.A3.OptName23,
                        a.A3.OptName24,
                        a.A3.OptName25,
                        a.A3.FldEnMaskUseFlag,
                        a.A3.HelpUrl,
                        a.A3.CtlEnFlag1,
                        a.A3.CtlEnFlag2,
                        a.A3.CtlEnFlag3,
                        a.A3.CtlEnFlag4,
                        a.A3.CtlEnFlag5,
                        a.A3.CtlEnFlag6,
                        a.A3.CtlEnFlag7,
                        a.A3.CtlEnFlag8,
                        a.A3.CtlEnFlag9,
                        a.A3.CtlEnFlag10,
                        a.A3.CtlEnFlag11,
                        a.A3.CtlEnFlag12,
                        a.A3.CtlEnFlag13,
                        a.A3.CtlEnFlag14,
                        a.A3.CtlEnFlag15,
                        a.A3.CtlEnFlag16,
                        a.A3.CtlEnFlag17,
                        a.A3.CtlEnFlag18,
                        a.A3.CtlEnFlag19,
                        a.A3.CtlEnFlag20,
                        a.A3.CtlEnFlag21,
                        a.A3.CtlEnFlag22,
                        a.A3.CtlEnFlag23,
                        a.A3.CtlEnFlag24,
                        a.A3.CtlEnFlag25,
                        a.A3.TabDsFlag1,
                        a.A3.TabDsFlag2,
                        a.A3.TabDsFlag3,
                        a.A3.TabDsFlag4,
                        a.A3.TabDsFlag5,
                        a.A3.TabDsFlag6,
                        a.A3.TabDsFlag7,
                        a.A3.TabDsFlag8,
                        a.A3.TabDsFlag9,
                        a.A3.TabDsFlag10,
                        a.A3.TabDsFlag11,
                        a.A3.TabDsFlag12,
                        a.A3.TabDsFlag13,
                        a.A3.TabDsFlag14,
                        a.A3.TabDsFlag15,
                        a.A3.TabDsFlag16,
                        a.A3.TabDsFlag17,
                        a.A3.TabDsFlag18,
                        a.A3.TabDsFlag19,
                        a.A3.TabDsFlag20,
                        a.A3.TabDsFlag21,
                        a.A3.TabDsFlag22,
                        a.A3.TabDsFlag23,
                        a.A3.TabDsFlag24,
                        a.A3.TabDsFlag25,
                        a.A3.OptValue1,
                        a.A3.OptValue2,
                        a.A3.OptValue3,
                        a.A3.OptValue4,
                        a.A3.OptValue5,
                        a.A3.OptValue6,
                        a.A3.OptValue7,
                        a.A3.OptValue8,
                        a.A3.OptValue9,
                        a.A3.OptValue10,
                        a.A3.OptValue11,
                        a.A3.OptValue12,
                        a.A3.OptValue13,
                        a.A3.OptValue14,
                        a.A3.OptValue15,
                        a.A3.OptValue16,
                        a.A3.OptValue17,
                        a.A3.OptValue18,
                        a.A3.OptValue19,
                        a.A3.OptValue20,
                        a.A3.OptValue21,
                        a.A3.OptValue22,
                        a.A3.OptValue23,
                        a.A3.OptValue24,
                        a.A3.OptValue25,
                        a.A3.FldEnAllFlag,
                        a.A3.FldEnMask,
                        a.A3.Factory,
                        a.A3.SecGrpId
                    }
                    ).ToList();      

注:DefaultIfEmpty忘了括号(方法名)

       toList() to是大写(ToList())

转载于:https://my.oschina.net/8824/blog/3064921

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值