Wie Wende ich die LINQ to SQL-Distinct-operator() verwendet, um einen List<T>?

Ich habe ein ernsthaftes(es ist schon mich verrückt) problem mit LINQ to SQL. Ich bin die Entwicklung einer ASP.NET MVC3-Anwendung mit c# und Razor in Visual Studio 2010.

Habe ich zwei Datenbank-Tabellen, Produkt und Kategorien:

Produkt(Prod_Id[primary key], andere Attribute)

Kategorien((Dept_Id, Prod_Id) [Primärschlüssel], andere Attribute)

Offensichtlich Prod_Id in Kategorien ist ein Fremdschlüssel. Beide Klassen zugeordnet sind, die mit dem Entity Framework (EF). Ich habe nicht erwähnt, der Kontext der Anwendung für Einfachheit.

In Kategorien gibt es mehrere Zeilen mit den Prod_Id. Ich möchte eine Projektion aller Verschiedene Prod_Id in Kategorien. Ich habe es mit Normalpapier (T)SQL, die in SQL Server MGMT Studio nach dieser (wirklich einfache) Abfrage:

SELECT DISTINCT Prod_Id
FROM Categories

werden und das Ergebnis korrekt ist. Jetzt muss ich diese Abfrage in meine Bewerbung, damit ich verwendet:

var query = _StoreDB.Categories.Select(m => m.Prod_Id).Distinct();

Ich gehe, um zu überprüfen, das Ergebnis meiner Abfrage mit:

query.Select(m => m.Prod_Id);

oder

foreach(var item in query)
{
  item.Prod_Id;
  //other instructions
}

und es funktioniert nicht. Zunächst die Intellisense, wenn ich Versuch zu schreiben query.Select(m => m. oder item.zeigt nur Vorschläge über die Methoden (wie z.B. Gleich, etc...) und nicht Eigenschaften. Ich dachte, dass vielleicht gab es etwas falsch mit Intellisense (ich denke, die meisten von Ihnen viele Male gehofft, dass Intellisense falsch war :-D) aber wenn ich die Anwendung starten, erhalte ich eine Fehlermeldung zur Laufzeit.

Bevor Sie Ihre Antwort im Hinterkopf behalten, dass:

1) überprüfte ich viele Foren habe ich versucht, den normalen LINQ to SQL (ohne Verwendung von Lambda-Ausdrücke), aber es funktioniert nicht. Die Tatsache, dass es funktioniert, (T)SQL bedeutet, dass es etwas falsch mit der LINQ to SQL-Anweisung (andere Abfragen in meiner Anwendung funktioniert perfekt).

2) Für die Anwendung bedingt, habe ich ein List<T> variable statt _StoreDB.Kategorien und ich dachte, das war das problem. Wenn Sie bieten mir eine Lösung ohne Verwendung eines List<T> ist geschätzt als gut.

Dank für Eure Antworten

Francesco

fehlt Mit System.Linq oder so?
Grund, warum Sie nicht bekommen, intellisense ist, weil Sie nur auswählen eine Spalte (ich denke, es ist ein string oder int), so werden Sie nur die Eigenschaften der Spalte Typ.
Welche Fehlermeldung bekommst du und wie bist du dazu gekommen, dass Distinct() nicht funktioniert, poste bitte den code
ja, du hast Recht! Es gibt einfach eine Liste von int. Und wenn ich möchte diese Liste für eine Verknüpfung?
welche Fehlermeldung erhalten Sie?

InformationsquelleAutor CiccioMiami | 2011-04-19

Schreibe einen Kommentar