C# 异常:从作用域“”引用了“FiasHostApp.Entity.DBEntity.FIAS_RM_v1.ITraNetMgrUnitBaseInfoRecord”类型的变量“w”,但该变量未定义

在使用Lambda表达式时,不注意我们有时就会产生上面的异常,原因是是红色的代码部分,我们在表达式中,编译时这个变量“W”还没有生成的,在这时候使用就会报错:

解决方法:我们不能用这种“不确定的变量”就可以了,Lambda表达式中的变量都必须是确定值的,不能是要再计算才能得出结果的。

public string GetNeNameByGTCode(string GT_Code)
        {
            string reVal = "";
            try
            {
                IQueryAgent<ITraNetMgrUnitBaseInfoRecord> ag =
                    MainDB.Dbo.NewQueryAgent<ITraNetMgrUnitBaseInfoRecord>();
                //string like1 = "'%" + GT_Code + "%'";
                ag.Select(p => p.NeName);

                ag.Where(w => w.GTCode.Contains(GT_Code))
                   .Take(1);
                var lst = new TraNetMgrUnitBaseInfos(ag);
                if (lst != null && lst.Count > 0)
                    reVal = lst[0].NeName;
            }
            catch (Exception ex)
            {
                log.WriteRecord(LogRecordLevel.Error, "GTCode获取网元异常:{0}", ex.Message + ex.StackTrace);
            }
            return reVal;
        }

posted on 2016-02-22 17:12  Mack.Meng  阅读(2148)  评论(1编辑  收藏  举报