2009-04-22 5 views
1

Chaque fois que je fais glisser une procédure stockée sur ma toile de contexte, les paramètres/arguments de la procédure stockée sont tous nullables.Les procédures stockées LinqToSql rendent toujours les paramètres nullables. Pourquoi?

Pourquoi est-ce? Est-ce à cause de comment j'ai déclaré mes paramètres à l'intérieur de la procudure stockée? Outre la création manuelle de mes méthodes de procédure stockée dans la classe partielle Context (ou glisser-déposer sur le canevas, couper du code autogen'd, passer à la classe partielle, puis supprimer les types Nullables). Y at-il un moyen de répare ça?

Il est vraiment frustrant :(

Répondre

2

Les paramètres des procédures stockées sont toujours annulable (il n'y a pas d'équivalent à la clause « NOT NULL » vous pouvez ajouter à une colonne dans une table), donc LINQ to SQL a peu de choix mais pour refléter le fait que dans ses méthodes générées.

Votre meilleur pari est de vérifier (dans le proc lui-même) si NULL a été adoptée et soit soulever une erreur ou le remplacer par une valeur par défaut.

+0

donc, il n'y a rien que je puisse définir dans le magasin proc pour dire "Cet argument ne peut pas être nul?" –

+0

Je ne crois pas, non. four faux! :) –

+0

Tout ce que vous pouvez faire est de vérifier NULL dans le proc et quitter et/ou RAISEHELL, err ERROR. – edosoft

Questions connexes