假设我在SQL中有一个SP:
CREATE PROCEDURE mySP
@LastName nvarchar(10),
@FirstName nvarchar(20)
AS
...
GO在c#中,没有指定长度的字符串类型。它的最大长度是2^32-1 ( IMHO)
那么,C#开发人员有什么样的保护:而不是发送长度超过长度的字符串?
(我不认为ORM也有这个限制--也许我错了)。
唯一的方法(我看到)是在(!)之前阅读Sp参数。并保持在缓存中,然后构建某种代理,它将对此负责。
但是-我担心它只会在运行时失败。
我说得对吗?
解决这个问题的方法是什么?
发布于 2012-11-11 08:55:22
C#没有有限长度的字符串,必须在运行时进行检查。不过,这取决于你使用的ORM。EntityFramework有一个可以用来修饰字符串的MaxLength属性。
发布于 2012-11-11 09:21:56
使用if条件检查字符串长度,如果超出所需长度,请不要调用该过程。
https://stackoverflow.com/questions/13329773
复制相似问题