1

假设我在 SQL 中有一个 SP:

CREATE PROCEDURE mySP
    @LastName nvarchar(10), 
    @FirstName nvarchar(20) 
AS 
  ...
GO

在 c# 中没有指定长度的字符串类型。它的最大长度是2^32-1 ( IMHO)

那么, C# 开发人员有什么样的保护措施:发送超过长度的字符串?

(我不认为任何 ORM 也有这个限制 - 也许我错了)。

唯一的方法(我看到)是在之前(!)读取 Sp 参数并保存在缓存中,然后构建某种负责此的代理。

但是 - 我担心它只会在运行时失败。

我对吗 ?

有什么解决方案?

4

2 回答 2

1

C# 没有长度限制的字符串,必须在运行时进行检查。不过,这取决于您使用的 ORM。EntityFramework 有一个MaxLength可以用来装饰字符串的属性。

于 2012-11-11T08:55:22.627 回答
0

使用if条件检查您的字符串长度,如果超过要求的长度,请不要调用该程序。

于 2012-11-11T09:21:56.147 回答