KhaledMohammad Ответов: 2

Привет gues мне нужна помощь с преобразованием SQL запроса в linq EF


это и есть запрос
когда я написал его в Linq появилась ошибка

выберите u.user_name ,max(l.last_action_date)
от пользователей тебя присоединиться system_log Л О у.функция user_id = л.функция user_id
группа по u.user_name


Что я уже пробовал:

ошибка в некоторых случаях заключается в следующем
Указанное выражение LINQ содержит ссылки на запросы, связанные с различными контекстами.

F-ES Sitecore

Вероятно, вам придется опубликовать код, который вы используете, так как эта ошибка не звучит так, как будто она имеет какое-то отношение к вашему коду linq.

2 Ответов

Рейтинг:
1

Christian Graus

Вот как ты это делаешь Макс:

c# - используя Linq to SQL, как найти min и max столбца в таблице? - переполнение стека[^]

Вот как вы группируетесь по:

var totalProdcuts = from o in ctx.Orders
                    join p in ctx.Products on o.ProductId equals p.Id
                    group o.NumberOf by p.Name into g
                    select new { ProductName = g.Key, TotalOrdered = g.Sum() };


KhaledMohammad

я могу сделать это отдельно
но мне нужно, чтобы они были вместе.

Christian Graus

Пример имеет сумму. Замените его на Max.

KhaledMohammad

Проблема состояла в том, чтобы использовать два разных dbcontext в одном linq
Теперь проблема была решена путем помещения их в список перед выполнением linq
Тнх

Christian Graus

да, это то, что я бы сказал, Если бы вопрос был яснее :)

Рейтинг:
0

Harsh.Shah.ifour

Привет
Ваш SQL запрос будет выглядеть следующим образом в Linq:

var query = from u in Users
join i in system_log on
u.user_id equals i.user_id
group u by u.user_name into usernew
select new 
{
  username = usernew.Key
  last_action_date = g.Max( p => p.usernew.last_action_date)
}

Надеюсь, это вам поможет.
Спасибо.