我必须将srting值转换为Int,但实际上Linq对实体不支持。
对于以下代码,我发现了错误。不知道如何将字符串转换为int。
var query = (from p in dc.CustomerBranch
where p.ID == Convert.ToInt32(id)// here is the error.
select new Location()
{Name=p.BranchName,Address=p.Address, Postcode=p.Postcode,City=p.City,Telephone=p.Telephone}).First();
return query;
错误是: LINQ to Entities无法识别方法'Int32 ToInt32(System.String)', 并且此方法无法转换为商店表达式。
答案 0 :(得分:4)
在linq外进行转换:
var idInt = Convert.ToInt32(id);
var query = (from p in dc.CustomerBranch
where p.ID == idInt
select new Location()
{Name=p.BranchName,Address=p.Address, Postcode=p.Postcode,City=p.City,Telephone=p.Telephone}).First();
return query;
答案 1 :(得分:-1)
不,他们不会。这样想吧; ToString()和parse()都是对象的方法。由于linq-to-entities尝试将您的linq表达式转换为sql,因此它们不可用。 如果需要在查询中执行此操作,则可能使用Cast,它应该在linq-to-entities [1]中可用。对于ToString,您可以使用SqlFunctions.StringConvert()[2]。