在Linq查询中连接字符串
问题描述:
我有一个数据库调用,返回一个对象。我使用LINQ来施放对象我多么希望它在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 to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression识别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
});
答
linq尝试在数据库查询级别执行select语句时发生了什么,它不知道如何将您的.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
});
+1
你正在把整个表加载到内存中,只是因为你不知道如何连接两者。 –
您可以使用循环来填充结果对象。在循环体中,你可以使用'Text = c.TariffName +“ - ”+ c.LineRental.ToString()' –