我有一个名为 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
。在此先感谢您的帮助。
最佳答案
您需要使用 EntityFunctions
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()
}
关于c# - 将 SQL 查询转换为 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352653/