Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用linq获取表中列的第一个字符_Sql Server_Linq - Fatal编程技术网

Sql server 使用linq获取表中列的第一个字符

Sql server 使用linq获取表中列的第一个字符,sql-server,linq,Sql Server,Linq,我正在为以下查询寻找LINQ等效项: 选择UPPER(子字符串(CompanyName,1,1)),按UPPER(子字符串(CompanyName,1,1))从MyTable GROUP中选择COUNT(*) 提前感谢。好吧,我不知道它是否会转换为适当的SQL查询,但您可以尝试以下方法: var query = from company in db.MyTable let firstChar = company.CompanyName.Substring(0, 1).To

我正在为以下查询寻找LINQ等效项:

选择UPPER(子字符串(CompanyName,1,1)),按UPPER(子字符串(CompanyName,1,1))从MyTable GROUP中选择COUNT(*)


提前感谢。

好吧,我不知道它是否会转换为适当的SQL查询,但您可以尝试以下方法:

var query = from company in db.MyTable
            let firstChar = company.CompanyName.Substring(0, 1).ToUpper()
            group company by firstChar into grouped
            select new { FirstChar = grouped.Key, Count = grouped.Count() };
以下是LINQ到对象的示例:

using System;
using System.Collections.Generic;
using System.Linq;

class Test
{
    static void Main()
    {
        var companies = new[] {
            new { CompanyName = "One", CompanyID=1 },
            new { CompanyName = "Two", CompanyID=2 },
            new { CompanyName = "Three", CompanyID=3 },
            new { CompanyName = "Four", CompanyID=4 },
            new { CompanyName = "Five", CompanyID=5 },
            new { CompanyName = "Six", CompanyID=6 },
        };

        var query = from company in companies
            let firstChar = company.CompanyName.Substring(0, 1).ToUpper()
            group company by firstChar into grouped
            select new { FirstChar = grouped.Key, Count = grouped.Count() };

        foreach (var entry in query)
        {
            Console.WriteLine(entry);
        }
    }
}
结果:

{ FirstChar = O, Count = 1 }
{ FirstChar = T, Count = 2 }
{ FirstChar = F, Count = 2 }
{ FirstChar = S, Count = 1 }
我说的至少是你所期望看到的,对吗