繁体   English   中英

在Linq查询中连接字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM