2009-04-22 2 views
1

Jedes Mal, wenn ich eine gespeicherte Prozedur per Drag-and-Drop auf meinen Context-Canvas verschiebe, sind alle Parameter/Argumente für die gespeicherte Prozedur nullfähig.Die gespeicherten Prozeduren von LinqToSql machen die Parameter immer nullfähig. Warum?

Warum ist das? Liegt es daran, dass ich meine Parameter im gespeicherten Prozess selbst deklariert habe?

Neben der manuellen Erstellung meiner Stored Procedure-Methoden in der Context-Teilklasse (oder drag-n-drop auf Canvas, aus autogenem Code entfernen, in Teilklasse verschieben, dann NULL-Typen entfernen) ... gibt es einen Weg dazu repariere das?

Es ist wirklich frustrierend :(

Antwort

2

Parameter für gespeicherte Prozeduren immer nullable sind (es gibt kein Äquivalent zu dem „NOT NULL“ Klausel Sie auf eine Spalte in einer Tabelle hinzufügen können), so Linq to SQL kaum eine andere Wahl hat, aber dass in seinen generierten Methoden zu reflektieren.

Ihre beste Wette (in dem proc selbst) zu überprüfen ist, wenn NULL übergeben wurde und entweder einen Fehler erhöhen oder mit einem Standardwert ersetzen.

+0

Also gibt es nichts, was ich kann Definieren Sie im Geschäftsprozess, um zu sagen: "Dieses Argument kann NICHT NULL sein?" –

+0

Ich glaube nicht, nein. Würde lieben, pr zu sein Ofen falsch! :) –

+0

Alles, was Sie tun können, ist nach NULL in der Proc suchen und beenden und/oder RAISEHELL, err Fehler. – edosoft

Verwandte Themen