Zufäller Datensatz aus SQL mit LINQ?

19/03/2008 - 18:41 von Andreas Mahub | Report spam
Hallöchen,

kann es sein das man mit LINQ nicht so ohne weiteres zufàllige Datensàtze
zurückliefern lassen kann?
Unter MSSQL ging das immer so:
SELECT * FROM tabelle ORDER BY NEWID()

Jetzt wollte ich das ganze auslagern auf eine Stored Procedure und diese
dann mit LINQ aufrufen, aber das klappt auch nicht so besonders. Beispiel:
Dim Daten = DB.GetColors(12)
GetColors ist die gespeicherte Prozedur auf dem MSSQL welche ich dann im
Designer "rübergezogen" habe. Die Intellisense zeigt mir auch alles richtig
an, aber nach dem abschließen der Zeile kommt in der Fehlerliste:
Fehler 3 Ein Ausdruck vom Typ "Integer" kann nicht abgefragt werden. Stellen
Sie sicher, dass kein Assemblyverweis und/oder Namespaceimport für den
LINQ-Anbieter fehlt.

Fehlt mir jetzt wirklich ein Assemblyverweis bzw. Namespace?

Gruß
Andy
 

Lesen sie die antworten

#1 Andreas Mahub
20/03/2008 - 11:57 | Warnen spam
Hi,

hat sich soeben erledigt.

Also: Gespeicherte Prozeduren auf dem SQL-Server ist das Zauberwort.
UND! Darauf achten das die Rechte stimmen. Denn zwar funktionierte die
Prozedur im SQL-Query-Analyzer und im Server Explorer wurde mir die Prozedur
samt der Felder angezeigt, aber wenn die Rechte nicht stimmen (und darauf
bin ich nicht gekommen) dann wird die Methode nicht korrekt generiert. Es
kommt auch keine Fehlermeldung, kein Hinweis, nichts.

Jetzt funktioniert das wunderbar mit den Zufàlligen Datensàtzen :-)
Einziges Manko: SELECT TOP @Anzahl Farben FROM tabelle ORDER BY NewID()
funktioniert nicht, da "TOP @Anzahl" mir bei der Syntax-Überprüfung
angekreidet wird.

Gruß
Andy

"Andreas Mahub" schrieb im Newsbeitrag
news:%
Hallöchen,

kann es sein das man mit LINQ nicht so ohne weiteres zufàllige Datensàtze
zurückliefern lassen kann?
Unter MSSQL ging das immer so:
SELECT * FROM tabelle ORDER BY NEWID()

Jetzt wollte ich das ganze auslagern auf eine Stored Procedure und diese
dann mit LINQ aufrufen, aber das klappt auch nicht so besonders. Beispiel:
Dim Daten = DB.GetColors(12)
GetColors ist die gespeicherte Prozedur auf dem MSSQL welche ich dann im
Designer "rübergezogen" habe. Die Intellisense zeigt mir auch alles
richtig an, aber nach dem abschließen der Zeile kommt in der Fehlerliste:
Fehler 3 Ein Ausdruck vom Typ "Integer" kann nicht abgefragt werden.
Stellen Sie sicher, dass kein Assemblyverweis und/oder Namespaceimport für
den LINQ-Anbieter fehlt.

Fehlt mir jetzt wirklich ein Assemblyverweis bzw. Namespace?

Gruß
Andy

Ähnliche fragen