Frage zu LINQ mit null als Ergebnis

19/03/2010 - 19:30 von M.Erlinger | Report spam
Hallo
ich hàtte folgende Frage zu dieser Anweisung:
System.Nullable<Int32> Result = (from p in MyObjectContext.XXXX

where ...
select
p.Column).Max();
Bei dieser Anweisung kann null als Ergebnis zurückkommen - nur wenn
ich diese Anweisung nicht in einen try{ } catch{ }-Block packe, stürzt
mir das Programm ab.

Meine Frage -> Ich dachte mit der Deklaration "Nullable" kann eine
Variable auch null-Werte enthalten??

Vielen Dank für eine Info zu meinem Problem/Frage.
Schönen Gruß
Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
19/03/2010 - 21:20 | Warnen spam
Hallo Michael,

ich hàtte folgende Frage zu dieser Anweisung:
System.Nullable<Int32> Result = (from p in MyObjectContext.XXXX
where ... select p.Column).Max();



nun, dann ist evtl. die Column-Eigenschaft nicht Nullable.
Dann kann es vorkommen, dass der materialisierte Wert NULL ist
und somit nicht in den Werttyp 'Int32' umgewandelt werden kann.
In der DB sollte dann also (zum Beispiel) für Column die NULL
zugelassen werden, damit LINQ daraus einen Nullable macht.
Oder du fügst einfach ein Casting hinzu:
.. select (int?)p.Column).Max();

BTW: für "System.Nullable<Int32>" ist: int?
eine kürzere Schreibweise.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen