Db字段类型和C#字段类型?

时间:2012-11-11 08:52:14

标签: c# .net orm types ado.net

假设我在SQL中有一个SP:

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

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

那么,C#开发人员有哪些保护发送超长的字符串?

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

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

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

我是对的吗?

有什么解决方案?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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