Einen guten Abend allerseits,
trotz Google-Suche und C#-Kompendium komme ich nicht weiter.
Mein Anliegen:
In einer Tabelle namens "zuordnung_merkmale" sind Felder mit unterschiedlichen Datentypen int, char, etc. enthalten.
Erstelle ich nun eine Abfrage wie beispielsweise:
C#-Quelltext
1: 2: 3: 4:
| Daten_neuDataContext ddcn = new Daten_neuDataContext(); var nummer = from daten in ddcn.zuordnung_merkmale where (daten.merkmal_name == "glatt" && daten.merkmal_ebene == 2 ) select daten.hk_nummer; |
ist das Ergebnis ein IQueryable<int?>, obwohl die "hk_nummer" in der Tabelle als (int) hinterlegt ist.
Wie schafft man es, dass das Ergebnis ein IQueryable<int> wird?
Hintergrund meiner Frage ist, das ich aus zwei verschiedenen Tabellen jeweils Merkmal-Nummern ermittele und mittels der Except-Methode die "ungleichen" weiterverwenden möchte:
C#-Quelltext
1: 2: 3:
| var merkmale_1 = (from aus1 in datacont.zuordnung_merkmale ... select new { aus1.merkmal_nummer}); |
und
C#-Quelltext
1: 2: 3:
| var merkmale_2 = (from aus2 in datacont.merkmale ... select new { aus2.merkmal_nummer}).Except(merkmale_1); |
was leider nur funktioniert, wenn die Tabelle "merkmale" sowie die Tabelle "zuordnung_merkmale" einheitlich aus (int)-Spalten besteht.
Sobald in einer der beiden Tabellen ein "char"- oder "varchar"-Feld enthalten ist, klappt das ganze nicht mehr.
Ich hoffe, das Problem halbwegs verständlich erläutert zu haben.
Für Hinweise oder gar Lösungen bedanke ich mich schon im voraus.
Vielen Dank.
Habak
Moderiert von
Th69: Beitragsformatierung überarbeitet: HTML-Tags korrigiert