Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - LINQ2SQL: Verwendung einer MSSQL Stored Procedure


UGrohne - Do 12.11.09 13:53
Titel: LINQ2SQL: Verwendung einer MSSQL Stored Procedure
Hallo zusammen,

ich habe folgende Stored Procedure im SQL 2008:

SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
ALTER PROCEDURE [dbo].[PROC_Forum_SearchTopics]
  @searchTerms nvarchar(100
AS
BEGIN
SET NOCOUNT ON;


SELECT rank,ft_id,ft_forum_id,ff_id,ft_titel,fp_titel,fp_text,fp_edat,fp_adat,mitglieder.m_id,mitglieder.m_vorname,mitglieder.m_nachname  
    FROM FREETEXTTABLE (Forum_Posts,*,'Test'as search
    LEFT OUTER JOIN Forum_Posts as posts ON posts.fp_id = search.[KEY]
    LEFT OUTER JOIN Forum_Topics as topics ON topics.ft_id = posts.fp_topic_id
    LEFT OUTER JOIN Forum_Forums as forums ON forums.ff_id = topics.ft_forum_id
    LEFT OUTER JOIN Mitglieder ON mitglieder.m_id = fp_user_id
  ORDER BY rank DESC;
END

Diese möchte ich nun in LINQ2SQL nutzen. Normalerweise erkennt der Designer beim Reinziehen der SP ob und welche Art von Rückgabewert die SP hat, nur für SP funktioniert das aus irgendeinem Grund nicht korrekt. Wenn ich die wie hier beschrieben reinziehe, bekomme ich als Rückgabewert nur einen Integer.

Andere ähnliche SPs haben funktioniert, habe einen "Automatisch generierten Typ" erhalten. Dann hab ich etwas rumprobiert und herausgefunden, dass wenn ich den Parameter dieser SP rausnehme, der Rückgabewert korrekt aufgebaut wird, wenn er drin ist, funktioniert es nicht.

Andere SPs, die korrekt verwendet wurden, hatten aber auch Parameter, daher ist das etwas seltsam.

Kennt jemand das Problem und weiß evtl. sogar Abhilfe?


UGrohne - Do 12.11.09 16:13

:autsch: Wenn man weiß, dass LINQ offensichtlich kein nvarchar unterstützt, dann kriegt man das Problem auch in den Griff ...