2016-06-20 11 views
0

Ich habe eine SQL, um Tabellenmaster und Detail anzuzeigen. Wie konvertiert man zu linq. Bitte helfen Sie mir:Convert SQLServer sql zu 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

Haben Sie versucht Linqer http://www.sqltolinq.com? – Kason

+0

Bitte versuchen Sie es, Arly. Wir sind kein Code-Schreibdienst. Die Abfrage ist relativ einfach, Sie sollten in der Lage sein, einen Start zu machen. – Rob

+0

@Kason: Danke für die Lösung, ich habe Linqer heruntergeladen und versucht. Aber ich verstehe nicht, wie man verwendet – Arly

Antwort

2

Wie wäre es damit?

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

Danke ,,, diese Arbeit, aber die Ergebnisse werden nicht von CreatedTime absteigend – Arly

+0

Antwort aktualisiert. – mshsayem

+0

Vielen Dank, diese Arbeit ... – Arly

1

Angenommen, Sie haben ChatUser und ChatUserConversationC# Einheiten, können Sie dies tun.

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

Ich habe diese Lösung versucht, aber nicht wissen, wie die Ergebnisse zu analysieren. Ich benutze asp.net mvc C# – Arly

+0

Sie meine Abfrage funktioniert, aber nicht wissen, wie man es in Sicht verwenden? –

+0

Ich weiß nicht arbeiten oder nicht, weil wenn ich debugge ich Fehler in Sicht bekommen – Arly