O/RマッピングにはEntity Frameworkを使用し、プロジェクトでは検証のためにDataAnnotationsを使用することにしました。これを実装しようとすると奇妙な問題が発生しました。DataAnnotationsで複合型を検証する
これは私がやったことです:
Name Address
**** *******
String First (not null) String Street (not null)
String Last (not null) String ZipCode (not null)
String City (not null)
そして以下:私は、次のエンティティタイプName
とAddress
は次のように定義された複合型です
Contact
*******
Int32 Id (not null, Entity Key)
Name Name (not null)
Address Address (not null)
String Phone
String Email
を持って
をクラスは私のエンティティと同じ名前空間にあります:
私は新しいContact
アイテムを作成するときに3210
public class ContactMetadata
{
[Required]
public Name Name { get; set; }
}
[MetadataType(typeof(ContactMetadata))]
partial class Contact { }
はしかし、Name
とAddress
タイプではなくName
とAddress
がnull
値そのものを有していると、Name
とすべての値がnull
あるAddress
のインスタンスで満たされています。したがって、すべての値はnull
ですが、Required
属性はエラーをスローしません。これを回避するにはどうしたらいいですか?
正確に。上記と同じ構造を使用してNameMetadataという名前の新しいクラスを作成し、必要な姓と名を設定しましたが、違いはありませんでした。 –
今、この質問には恩恵があります - あなたはどこにでも近づくために最も近い人です...;) –
ああ、悲しい、わかりません。おそらくカスタム属性を作成し、そこにnull値を検証しようとしましたか? – blu