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

时间:2015-04-08 12:01:12

标签: c# linq

我在将int(long)转换为string时遇到问题。当我使用l.code == l.id.ToString()时,它会抛出异常。 id是long类型,代码是nvarchar。

我正在使用的代码是

if (municipalityId != null)
    q = q.Where(l => l.MunicipalityId == municipalityId.Value && l.Code == l.Id.ToString());

我会很感激的任何帮助

1 个答案:

答案 0 :(得分:0)

正如Matt Thrower指出的那样 - 这是EF将ToString()方法转换为实际SQL类型转换的问题。

尝试明确指定SQL函数:

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