EntityFramework Linq查询使用int.parse报错

EntityFramework Linq 查询中不能使用int.parse,否则报错,报错信息如下:

报错信息:LINQ to Entities does not recognize the method ‘Int32 Parse(System.String)’ method, and this method

var data = from v in db.Vip
            join b in db.Business on v.BusinessId equals b.Id
            where v.Level == int.Parse(level) // 这样写会报错
            select new VipInfoModel
            {
                VipName = v.VipName,
                Level = v.Level.Value,
                BusinessId = v.BusinessId.Value,
                BusinessName = b.Name,
                DisplayName = b.DisplayName
            };

解决方案:把int.parse拿到外面

var _level = int.Parse(level);
var data = from v in db.Vip
            join b in db.Business on v.BusinessId equals b.Id
            where v.Level == _level
           select new VipInfoModel
            {
                VipName = v.VipName,
                Level = v.Level.Value,
                BusinessId = v.BusinessId.Value,
                BusinessName = b.Name,
                DisplayName = b.DisplayName
            };

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注