2011-05-16 4 views
4

J'ai un champ de base de données calculé dans mon modèle Code-First. J'ai marqué cela avec le DatabaseGeneratedAttribute. Ai-je besoin de spécifier le RequiredAttribute aussi? En d'autres termes: "requis" signifie-t-il que cette valeur est assignée à? Ou cela signifie-t-il que cette valeur n'est pas autorisée à être nulle.Entity Framework 4.1 - Que signifie réellement RequiredAttribute?

+0

Non nullable, je crois. –

+0

Ma conjecture que cela affecte uniquement la validation. Nullable ou non dépend du type (int ou int?). (Mais c'est juste une supposition.) – Dmitry

Répondre

2

RequiredAttribute est utilisé à la fois pour la définition de validation et de mappage. Si vous définissez la propriété string sans cet attribut, elle est définie comme colonne nullable dans la base de données, mais avec cet attribut, elle n'est pas nullabe. En d'autres termes, il indique si la propriété peut contenir null pendant la validation et dans la base de données.

+0

Qu'est-ce que cela signifie pour les propriétés 'DatabaseGenerated'? De mon point de vue, une telle valeur serait toujours nulle pour les entités nouvellement créées (même en cours de validation) avant d'être validées dans la base de données. Et la deuxième question est, avons-nous besoin d'utiliser des types Nullable <> ou est-ce suffisant pour seulement msis l'attribut 'Required'? – 0xbadf00d

Questions connexes