我是新的LINQ,我想知道我是否可以实现下面的SQL查询从LINQ?
使用Entity Framework Core。
SELECT 0 [All], [Range] =
CASE
WHEN Value BETWEEN 0 AND 25 THEN 'Low'
WHEN Value BETWEEN 25 AND 75 THEN 'Medium'
WHEN Value BETWEEN 75 AND 90 THEN 'High'
WHEN Value BETWEEN 90 AND 100 THEN 'Very High'
END
FROM Result.Calculation C
INNER JOIN Data.SampleSet S ON C.SampleSetID = S.ID
WHERE S.SampleDrawn >= DATEADD(MONTH,-3,GETDATE()) AND S.Department = 'LOCATION A'
目前,我正在使用FromSql调用存储过程,如下所示。我想知道我是否可以在不使用存储过程的情况下做同样的事情?
Copyright © 2018 - 2019 www.cnm.com. All Rights Reserved.粤ICP备15047592号-1
谢谢。
4条答案
按热度按时间5uzkadbs1#
下面是最后一个LINQ语句,它为我工作。正如Amit在他的回答中解释的那样,RangeProvider 方法将用于替换SQL CASE语句。
1dkrff032#
可以使用此自定义表达式生成器方法
使用方法:
holgip5t3#
你可以用这个
2g32fytz4#
你可以使用它,如果它适合你。我只会解释LINQ查询部分。你可以使用EF。我为这些创建了虚拟数据。对于EF,使用IQueryable代替。
EDIT:LINQ Query for grouped result..请确保您使用的是IQueryable。
下面是相同的代码。