J'ai été à la recherche de ressources sur la façon de déclarer les relations de clé étrangère et d'autres contraintes en utilisant le premier code EF 4.1 sans beaucoup de chance. Fondamentalement, je suis la construction du modèle de données dans le code et à l'aide de MVC3 à la requête de ce modèle. Tout fonctionne via MVC qui est génial (bravo à Microsoft!) mais maintenant, je le veux de ne PAS travailler parce que j'ai besoin d'avoir des données modèle de contraintes.
Par exemple, j'ai un objet de Commande qui a une tonne de propriétés qui sont à l'extérieur des objets (tables). Droit maintenant, je peux créer une Commande, pas de problème, mais sans être en mesure d'ajouter la clé étrangère ou des objets externes. MVC3 définit cette place pas de problème.
Je me rends compte que je pourrais juste ajouter les objets moi-même dans la classe du contrôleur avant de l'enregistrer, mais je voudrais l'appel à DbContext.SaveChanges() échoue si la contrainte relations n'ont pas été respectées.
DE NOUVELLES INFORMATIONS
Donc, plus précisément, je voudrais un exception à se produire lorsque je tente de l' enregistrer une Commande sans objet la spécification d'un objet client. Cette ne semble pas être le problème si je rédigez simplement les objets comme décrit dans la plupart des le Premier Code EF de la documentation.
Dernier code:
public class Order
{
public int Id { get; set; }
[ForeignKey( "Parent" )]
public Patient Patient { get; set; }
[ForeignKey("CertificationPeriod")]
public CertificationPeriod CertificationPeriod { get; set; }
[ForeignKey("Agency")]
public Agency Agency { get; set; }
[ForeignKey("Diagnosis")]
public Diagnosis PrimaryDiagnosis { get; set; }
[ForeignKey("OrderApprovalStatus")]
public OrderApprovalStatus ApprovalStatus { get; set; }
[ForeignKey("User")]
public User User { get; set; }
[ForeignKey("User")]
public User Submitter { get; set; }
public DateTime ApprovalDate { get; set; }
public DateTime SubmittedDate { get; set; }
public Boolean IsDeprecated { get; set; }
}
C'est l'erreur que je reçois aujourd'hui lors de l'accès au VS généré vue pour le Patient:
MESSAGE D'ERREUR
Le ForeignKeyAttribute sur la propriété 'Patient' type 'PhysicianPortal.Modèles."L'ordre n'est pas valides. Le nom de clé étrangère "Parent" n'a pas été trouvé sur le type de charge 'PhysicianPortal.Modèles.La commande'. L' Nom de la valeur doivent être séparés par des virgules liste de clé étrangère noms de propriété.
En ce qui concerne,
Guido