2

我喜欢修剪以下字符串,但出现错误:

var getClients = (from c in GeneralUtillities)
    orderby c.Client_Name
    select new
    {
        c.Client_Name.Trim(),
        c.Client_Code,
    });

谢谢

4

5 回答 5

7

您需要为匿名类型对象属性提供名称

var getClients = (from c in GeneralUtillities)
    orderby c.Client_Name
    select new
    {
        Name = c.Client_Name.Trim(),
        Client_Code = c.Client_Code
    };
于 2013-10-02T13:46:14.910 回答
3

如果您不在匿名类型属性中提供名称,它会尝试使用分配给它的值的属性名称。当您在属性上调用方法时,它无法解析名称。您需要指定它:

var getClients = (from c in GeneralUtillities)
orderby c.Client_Name
select new
{
    Client_Name = c.Client_Name.Trim(),
    c.Client_Code,
});
于 2013-10-02T13:47:05.327 回答
3

我看到 3 件事 - 因为你没有指定错误我不确定真正的问题是什么,但这里有一些猜测:

  1. 你有一个结束括号,GeneralUtillities它的末尾是一个语法错误
  2. 您没有为匿名类型中的第一个字段指定名称
  3. Linq-to-Entities 可能不支持使用Trim

这是一个替代方案:

var getClients = (from c in GeneralUtillities
    orderby c.Client_Name)
    .AsEnumerable()
    .Select (c =>  new
        {
            Client_Name = c.Client_Name.Trim(),
            Client_Code = c.Client_Code,  // for readability, not necessary
        });
于 2013-10-02T13:51:24.197 回答
0

匿名类型的属性名称在编译时必须是已知的。

var getClients = (from c in GeneralUtillities)
    orderby c.Client_Name
    select new
    {
        Name= c.Client_Name.Trim(),
        Code = c.Client_Code,
    });
于 2013-10-02T13:46:42.710 回答
-1
var getClients =
    (from c in GeneralUtillities.a.data
    orderby c.Client_Name
    select new
    {
        c.ID_Client,
        c.Client_Name,
    });

这是正确的代码,所以问题是修剪客户端名称以在开始和结束时没有空格。

于 2013-10-02T13:48:27.667 回答