C# 如何在linq查询中将int转换为字符串

C# 如何在linq查询中将int转换为字符串,c#,linq,C#,Linq,我在将int-long转换为字符串时遇到问题。当我使用l.code==l.id.ToString时,它会抛出一个异常。 id为long类型,代码为nvarchar 我使用的代码是 if (municipalityId != null) q = q.Where(l => l.MunicipalityId == municipalityId.Value && l.Code == l.Id.ToString()); 如有任何帮助,我将不胜感激。如前所述-这是EF将ToS

我在将int-long转换为字符串时遇到问题。当我使用l.code==l.id.ToString时,它会抛出一个异常。 id为long类型,代码为nvarchar

我使用的代码是

if (municipalityId != null)
    q = q.Where(l => l.MunicipalityId == municipalityId.Value && l.Code == l.Id.ToString());
如有任何帮助,我将不胜感激。

如前所述-这是EF将ToString方法转换为实际SQL类型转换时的问题

尝试显式指定SQL函数:

if (municipalityId != null)
q = q.Where(l => l.MunicipalityId == municipalityId.Value && l.Code == SqlFunctions.StringConvert((decimal)l.Id).Trim())

异常到底是什么?您得到的异常及其消息是什么?q集合是什么类型?它可以从EF中读取和暴露吗?对不起。例外情况是:LINQ to Entities无法识别“System.String ToStringInt64”方法,并且此方法无法转换为存储表达式。我正在发布我的方法:var q=\u service.GetLocalities.SelectLocalityViewModel.FromEntityExpression.取消本地化查询;如果市政府ID!=null q=q。其中l=>l.MunicipalityId==MunicipalityId.Value&&l.Code==l.Id.ToString;q=q.OrderByl=>l.Name;返回Jsonq.ToList、JsonRequestBehavior.AllowGet;非常感谢。这解决了我的问题