C# 将SQL查询转换为LINQ

C# 将SQL查询转换为LINQ,c#,.net,winforms,linq,linq-to-entities,C#,.net,Winforms,Linq,Linq To Entities,我有一个名为visit的表,其中包含以下列: visit_Id member_Id visit_Date visit_Time visit_DateTime visit_Status values like (accepted, refused) 我有以下SQL查询: string sql = @"SELECT CONCAT(UPPER(SUBSTRING(visit_Status, 1, 1)), SUBSTRING(visit_Status FROM 2)) as Status,

我有一个名为
visit
的表,其中包含以下列:

visit_Id
member_Id 
visit_Date 
visit_Time 
visit_DateTime 
visit_Status values like (accepted, refused)
我有以下SQL查询:

string sql = @"SELECT CONCAT(UPPER(SUBSTRING(visit_Status, 1, 1)), SUBSTRING(visit_Status FROM 2))  as Status, COUNT('x') AS Visits
   FROM visits
   WHERE visit_Date BETWEEN '2001-09-08' AND '2009-09-09'
   GROUP BY visit_Status";

如何将此SQL转换为LINQ?我的实体名称是
dbcontext
。提前感谢您的帮助。

您能告诉我您想用Count('x')做什么吗

来自dbcontext.visions中的v的

其中v.visit_Date>=“2001-09-08”和v.visitDate您需要使用

DateTime dateFrom=newdatetime(2001,9,8);
DateTime dateTo=新的日期时间(2001,9,9);
var query=来自dbcontext.visions中的v

其中v.visit\u Date>=dateFrom&&v.visit\u Date抱歉,更具体地说,什么是“x”,因为我在您的名为visit的表中没有看到它。我支持它。我想我错过了他想要的“x”,但是是的,这会很好。@我在图表中表示这些数据…所以我想在图表中显示成员计数和状态…计数(x)是访问次数。。。。。
from v in dbcontext.visits
where v.visit_Date >= "2001-09-08" && v.visitDate <= "2009-09-09"
group by v.visit_Status
select new
{
    Status = string.Concat(char.ToUpper(v.visit_Status[0], v.visit_Status.Substring(1)),
    Visits = //Not sure what 'x' is in your example
}
DateTime dateFrom = new DateTime(2001, 9, 8);
DateTime dateTo = new DateTime(2001, 9, 9);

var query = from v in dbcontext.Visits
            where v.visit_Date >= dateFrom && v.visit_Date <= dateTo
            group v by v.visit_Status into vg
            select new
            {
              Status = EntityFunctions.Concat(EntityFunctions.ToUpper(vg.Key[0]),
                                              EntityFunctions.SubString(1, EntityFunctions.Length(vg.Key) -1),
              Visits = vg.Count()
            }