2

永続オブジェクトのプロパティの長さを検証するのに最も便利な場所はどこだろうか。

たとえば、CountryCode nvarvhar(3)を使用してDbにCountryというテーブルがあるとします。

そして、Dbに保存できるプロパティCountryCodeを持つマップされたオブジェクトCountryがあります。

ユーザーが設定した国コードが3文字を超えていないかどうかはどこで確認すればよいですか。

  • プロパティCountryCodeのセッター
  • またはDbに保存するとき

アドバイスをいただけますか?

ありがとう

4

2 に答える 2

1

コードセキュアの推奨事項によると、すべてのチェックはできるだけ早く実行する必要があります。さらに、他の当事者の検証に依存せずに、各当事者が単独でチェックを実行することをお勧めします。

于 2011-07-17T07:04:24.967 に答える
1

プロパティを(とにかく正しいデータ型の)任意の値に設定し、保存する前に検証するのが最も簡単であることがわかりました。

.Netに組み込まれている検証属性を使用するのが好きです。これにより、プロパティに関連付けられたロジックが保持されます。あなたが求めているもののためのトリックを行うべきStringLengthAttributeクラスがあります。

属性はSystem.ComponentModel.DataAnnotations名前空間にあります(同じ名前のアセンブリを参照する必要があります)。

MVCとEntityFrameworkには、データを検証するための組み込みの方法があります。自分でロジックを実行する必要がある場合は、開始に役立つ可能性のあるコードを次に示します...

var ctx = new ValidationContext(obj, null, null);
Validator.ValidateObject(obj, ctx);
于 2011-07-17T07:04:50.623 に答える