假设我在SQL中有一个SP:
CREATE PROCEDURE mySP
@LastName nvarchar(10),
@FirstName nvarchar(20)
AS
...
GO
在c#中没有指定长度的字符串类型。其最大长度为2^32-1 ( IMHO)
那么,C#开发人员有哪些保护:不发送超长的字符串?
(我认为任何ORM都没有这个限制 - 也许我错了)。
唯一的方法(我看)是在(!)之前读取Sp参数并保留在缓存中,然后构建某种代理,它将对此负责。
但是仍然 - 我担心它只会在运行时失败。
我是对的吗?
有什么解决方案?
答案 0 :(得分:1)
C#没有有限长度的字符串,必须在运行时进行检查。但这取决于您使用的ORM。 EntityFramework有一个MaxLength
属性,可用于装饰字符串。
答案 1 :(得分:0)
使用if
条件检查字符串长度,如果超过了所需的字符串长度,请不要调用该过程。