2016-06-20 5 views
0

У меня есть SQL для просмотра основного и подробного таблиц. Как преобразовать в linq. Пожалуйста, помогите мне:Преобразование SQLServer sql в Linq

Select B.idchatuser,B.Nama, B.Hp, 
(select TOP 1 CreatedTime from ChatUserConversation 
where IdChatUser = B.IdChatUser order by CreatedTime) CreatedTime 
from ChatUser B 
order by CreatedTime desc 
+0

Вы попробовали Linqer http://www.sqltolinq.com? – Kason

+0

Прошу вас, Арли. Мы не являемся службами написания кода. Запрос относительно прост, вы должны быть в состоянии начать. – Rob

+0

@Kason: Спасибо за решение, я загрузил и попробовал Linqer. Но я не понимаю, как использовать – Arly

ответ

2

Как насчет этого?

from B in ChatUser 
join C in ChatUserConversation on B.IdChatUser equals C.IdChatUser 
group new {B,C} by new {B.IdChatUser, B.Nama, B.Hp} into g 
let CreatedTime = g.OrderBy(x=>x.C.CreatedTime).Select(x=>x.C.CreatedTime).FirstOrDefault() 
orderby CreatedTime descending 
select new 
{ 
    IdChatUser = g.Key.IdChatUser, 
    Nama = g.Key.Nama, 
    Hp = g.Key.Hp, 
    CreatedTime = CreatedTime 
} 
+0

Спасибо, эта работа, но результаты не упорядочены по CreatedTime по убыванию – Arly

+0

Ответ Обновлено. – mshsayem

+0

Спасибо, это работает ... – Arly

1

Если у вас есть ChatUser и ChatUserConversationC# сущности, вы можете сделать это.

var results = ChatUser.Select(x=> new 
     { 
      x.idchatuser, 
      x.Name, 
      x.Hp, 
      CreatedTime = ChatUserConversation .Where(c=> c.IdChatUser = x.IdChatUser) 
               .Max(c=>c.CreatedTime) 
     }) 
     .ToList(); 
+0

Я пробовал это решение, но не знаю, как анализировать результаты для просмотра. Я использую asp.net mvc C# – Arly

+0

Вы имеете в виду, что запрос работает, но не знает, как его использовать? –

+0

Я не знаю, работает или нет, потому что когда я отлаживаю, я получаю ошибку в представлении – Arly

Смежные вопросы