Ich habe entschieden, Entity Framework für O/R-Zuordnung und DataAnnotations für die Validierung in meinem Projekt zu verwenden, und ich habe jetzt ein seltsames Problem bei dem Versuch, dies zu implementieren.Überprüfen Sie komplexe Typen mit DataAnnotations
Dies ist, was ich getan habe:
Ich habe folgendes Entitätstyp
Contact
*******
Int32 Id (not null, Entity Key)
Name Name (not null)
Address Address (not null)
String Phone
String Email
wo Name
und Address
komplexe Typen sind wie folgt definiert:
Name Address
**** *******
String First (not null) String Street (not null)
String Last (not null) String ZipCode (not null)
String City (not null)
und die folgenden Klassen befinden sich im selben Namespace wie meine Entitäten:
public class ContactMetadata
{
[Required]
public Name Name { get; set; }
}
[MetadataType(typeof(ContactMetadata))]
partial class Contact { }
Allerdings, wenn ich ein neues Contact
Artikel erstellen, werden die Name
und Address
Typen mit Instanzen von Name
gefüllt und Address
wo alle Werte null
sind, statt Name
und Address
mit null
Werte selbst. Daher wirft das Required
Attribut keine Fehler, obwohl alle Werte null
sind. Wie arbeite ich das an?
Genau.Ich habe eine neue Klasse mit dem Namen NameMetadata erstellt, die die gleiche Struktur wie oben verwendet und sowohl den ersten als auch den letzten Namen festgelegt hat, aber das machte keinen Unterschied. –
Es gibt jetzt ein Kopfgeld in dieser Frage - und du bist derjenige, der dir am nächsten kommt ...;) –
Oh, wie traurig, ich habe keine Ahnung. Haben Sie vielleicht versucht, ein benutzerdefiniertes Attribut zu erstellen und den Nullwert dort zu validieren? – blu