[英]Concatenate string in Linq query
我有一个数据库调用,返回一个对象。 我使用linq将对象投射为我想要的样子
var result = queryResult.OrderBy(c => c.TariffName)
.Take(count)
.Select(c => new
{
Text = c.TariffName,
Key = c.TariffId,
Price = c.LineRental
});
var list = result.ToList();
我现在想将线路租金添加到关税名称显示中,显示如下:
myTariff-12.99
当我尝试执行此操作时,虽然可以使更改生效:
Text = c.TariffName + " - ",
但是,当我尝试添加线路租赁时,我遇到了一些问题,即linq无法识别ToString()。 我需要它看起来像:
Text = c.TariffName + " - " + c.LineRental.ToString(),
我了解linq从读取LINQ到Entities不会识别ToString()方法无法识别方法'System.String ToString()'方法,并且该方法无法转换为商店表达式,但是如何更改给定值我不能在linq查询之前将其设置为字符串?
首先将查询结果转换为列表,然后使用select
使toString
工作。
var result = queryResult.OrderBy(c => c.TariffName)
.Take(count);
var list = result.ToList().Select(c => new
{
Text = c.TariffName + " - " + c.LineRental.ToString(),
Key = c.TariffId,
Price = c.LineRental
});
试图在数据库查询级别执行select语句的linq发生了什么,它不知道如何转换.Select
lambda来select
sql语句的一部分。
您可以做的最简单的操作是首先查询必填字段,对查询调用.ToList()
来执行它,然后执行投影。
var result = queryResult.OrderBy(c => c.TariffName)
.Take(count)
.Select(c => new
{
Text = c.TariffName,
Key = c.TariffId,
Price = c.LineRental
});
var list = result.ToList().Select(c=>new {
Text = string.Format("{0} - {1}", c.Text, c.Price),
Key=Key,
Price=Price
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.