2016-04-22 5 views
0

Wie konvertiert man folgende SQL-Abfrage zu LINQ zu SQL?Links Join mit und Bedingung Linq zu SQL

select c.ClientID , c.ClientName , case when cca.clientID >0 then 1 else 0 end 'ClientAccess' from Clients c 
left join clientcontactaccess cca ON cca.clientid = c.ClientID and cca.ClientContactID = 2141 
where c.GroupID = 1 

Ich habe dies bisher getan, aber nicht wissen, wie „und cca.ClientContactID = 2141“ Zustand zu behandeln;

dynamic query = (from c in db.Clientdb.ClientContactAccesscca.ClientIDc.ClientIDGroupfrom cca in GroupDetails.DefaultIfEmpty()where c.GroupID == 1c.ClientIDc.ClientNamecca.ClientID.ToString == null ? 0 : 1); 
+1

Siehe Webseite links Outer Join: https://code.msdn.microsoft.com/LINQ-Join-Operators-dabef4e9 – jdweng

+0

danke für den Link, aber kann keine linken Join Beispiel mit "And" Bedingung sehen. – user1263981

+0

Es gibt ein nettes Tool namens [Linqer] (http://www.sqltolinq.com/). Linqer ist ein SQL-zu-LINQ-Konvertierungstool. Es hilft LINQ zu lernen und bestehende SQL-Anweisungen zu konvertieren. –

Antwort

0

Ich landete, wo Klausel mit join (zweiter Linie)

Dim query = (From c In db.Client _ 
       Group Join cca In db.ClientContactAccess.Where(Function(cca) cca.ClientContactID = _contactID) On cca.ClientID Equals c.ClientID _ 
       Into GroupDetails = Group _ 
       From cca In GroupDetails.DefaultIfEmpty() Where c.GroupID = 1 
       Select c.ClientID, c.ClientName, ClientAccess = If(cca.ClientID.ToString Is Nothing, 0, 1)) 

Wenn jemand dann poste bitte bessere Lösung hat, wie es das Wissen erhöhen würde und ich bin neu in Linq.

+0

Blick auf all die anderen Fragen, die genau so sind, würde ich sagen, dass Sie auf dem richtigen Weg sind. – pseudocoder