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 に答える