2017-08-27 1 views
0

Ich verwende Linq in Asp.NET MVC-Projekt für Datenbankoperationen. Ich möchte Kunden mit Sitecode in der AgentHealth-Tabelle anlocken. Wie kann ich dies mit linq in einem Vorgang tun?Array-Vergleich mit Linq in Asp.NET MVC

var CurrentCustomers = new List<Customer>(); 
var CurrentCustomersDisc = Database.Session 
            .Query<agenthealts>() 
            .ToList() 
            .Select(x => x.sitecode) 
            .Distinct() 
            .ToList(); 

foreach(var CurrentDisc in CurrentCustomersDisc) 
{ 
    var TempCustomer = Database.Session 
           .Query<Customer>() 
           .FirstOrDefault(x => x.deleted_at == null 
               && x.SiteCode == CurrentDisc); 
    if(TempCustomer != null) 
    { 
     CurrentCustomers.Add(TempCustomer); 
    }    
} 
+0

Haben Sie eine zufällige Kunde von jedem agenthealth holen wollen,' Sitecode == CurrentDisc 'und alle diese Kunden in eine Liste aufnehmen? – Christos

+0

Ja, CurrentCustomersDisc ist ein Array von Sitecodes und jeder Kunde hat einen Sitecode. –

+0

Bitte überprüfen Sie meine Antwort. Darüber hinaus aktualisieren Sie bitte Ihre Frage, die ausdrücklich besagt, dass Sie eine Liste suchen, die einen Kunden von jedem agenthealth enthalten würde, um klar zu machen, was fraglich ist. Danke – Christos

Antwort

1

Sie können Kunden wählen, wo ihre Id (oder das, was der Primärschlüssel) in `CurrentCustomersDisc ':

var CurrentCustomers = Database.Session.Query<Customer>.Where(c=> 
    CurrentCustomersDisc.Select(cc=> cc.Id).Contains(c.Id)); 
+0

Rica Ederim;) İsmail bey –