【发布时间】:2014-02-10 16:49:17
【问题描述】:
我有一个返回公共类的 linq 查询。在选择新的我通过实体数据库访问属性巡航并添加值但跳转,除了它说的地方:
LINQ to Entities 无法识别方法的'System.String ToString()' 方法,并且该方法无法翻译成存储表达式。
问题出在哪里?我可以在 Linq 中导航。选择 linq 到 bd 导航属性真的吗?
我尝试了几种方法的 .Sum ,但我失败了。
我将不胜感激。
谢谢
public class prueba
{
public int Id { get; set; }
public string Nombre { get; set; }
public string Email { get; set; }
public string Codigo { get; set; }
public string Total { get; set; }
}
var result = db.cliente
.Where(p => !p.Baja.Value)
.Where(OperacionPedido(operacionPedid, numPedidos))
.Where(OperacionGastado(operacionTot, totGastado))
.Select(p => new prueba
{
Id = p.Id,
Nombre = p.Nombre + " " + p.Apellidos,
Email = p.Email,
Codigo = p.territorio1.Codigo_iso3166_3.Trim(),
Total = p.pedido.Sum(oo=>oo.Total.Value).ToString()
}).OrderBy(p => p.Nombre)
.ToList();
【问题讨论】:
-
如错误提示,问题不在
Sum,而在ToString。我建议将Total设为数字类型,这样您就不必调用ToString。 -
谢谢 p.s.w.g,你的解决方案很好,我更喜欢返回一个字符串,但最后返回一个小数会更好。谢谢