我想定义不允许空参数的存储过程参数。
alt text http://www.pixelshack.us/images/xg3mr2xw0q13z22nal.jpg
@MailItemId int OUTPUT
将不可为空,因为当我将存储过程导入LINQ to SQL设计器时,它说@MailIetmid是ref int? mailItemId
。
alt text http://www.pixelshack.us/images/er80hukg27lreiy9b83y.jpg
感谢。
答案 0 :(得分:2)
如果没有别的,你可以修改自动生成的代码(在designer.cs中)以不接受可以为空的整数。如果参数最终变为null,则可能会在LINQ to SQL代码中导致一个奇怪的异常,但这不是一个大问题。
答案 1 :(得分:1)
不,你不能这样做。 SQL Server中的类型始终为NULL。
答案 2 :(得分:0)
您可以创建一个返回INT的函数。
另一方面,从SQL的角度来看,可以从函数返回NULL。我不知道代码生成器将如何生成函数。如果它仍然返回一个可以为空的int,我认为不可能。
答案 3 :(得分:-2)
您可以改为指定默认值:
@MailItemId int OUTPUT = 0
或类似的东西