Моя задача - преобразовать следующий SQL-запрос в LINQ с помощью функции Groupby, Orderby, Date.Преобразование SQL-запроса в функцию LINQ - DateDiff
SELECT
sd.name, s.BuilderName,
Min(Date) as MinDatetime,
Max(Date) as MaxDatetime,
datediff(day, min(Date), max(Date))/ cast (count(sd.jobRobosname) as float)
FROM
[Data] sd
JOIN Example s ON s.name= sd.Name
WHERE jobRobosjobid='NOT RUN'
GROUP BY sd.name, s.name
Я попытался, как,
(from record in _db.Data
join jobRobos in _db.Example on record.Name equals Example.Name
where record.jobRobos jobid != "NOT RUN"
group jobRobos by new {record.Name,jobRobos .BuilderName} into r
select new
{
jobRobos Name = r.Key.jobRobos Name,
BuilderName = r.Key.BuilderName,
MaxDate = r.Key.Min(r.Date),
MinDate = r.Max(c => c.Date),
Diff = r.Key.datediff(day, MinDate, MaxDate)/r.Key.Cast(Count(r.Key.jobRobos Name) as float)
}).ToList();
я упомянул некоторые из подобных вопросов здесь нравится:
- How to convert SQL query into LINQ
- Convert SQL query into linq to entities
- Convert SQL query into LINQ query in VB
- Translate SQL Query into LINQ Query
Но не удалось найти решение.
Может ли кто-нибудь предложить мне некоторые идеи?
Можете ли вы утверждать ошибки вы получаете? –
Указывает текст ошибки как «AnanymousType Error» –
Вы добавили теги для mySQL и SQL Server. Что вы используете? Если последнее, то вы можете использовать 'SqlMethods.DateDiffDay' - см. [MSDN] (https://msdn.microsoft.com/en-us/library/system.data.linq.sqlclient.sqlmethods.datediffday (v = vs. 110) .aspx) – strickt01