J'ai besoin de créer une relation où j'ai une table utilisateur qui lie à une table d'adresses. Le problème est que j'ai besoin de la table d'adresses pour stocker aussi les adresses historiques. Il est également possible qu'un utilisateur n'ait pas d'adresse du tout.Entity Framework 4.1 Code First - Comment créer deux relations différentes entre deux tables
public class user
{
public virtual int ID { get; set; }
...
public virtual int? AddressId { get; set; }
[ForeignKey("AddressId")]
public virtual Address CurrentAddress { get; set; }
public virtual ICollection<Address> HistoricAddresses { get; set; }
}
public class Address
{
public virtual int ID { get; set; }
...
}
J'ai essayé différentes façons d'obtenir ce travail et a obtenu diverses erreurs comme mettre une autre table entre l'utilisateur et adresse:
public class HistoricAddress
{
public virtual int ID { get; set; }
public Address HistoricAddress { get; set; }
}
public class user
{
public virtual int ID { get; set; }
public virtual Address CurrentAddress { get; set; }
public virtual ICollection<HistricAddress> HistoricAddresses { get; set; }
...
}
et de diverses autres façons, mais cela soulève également des erreurs. Il doit y avoir une bonne façon de faire cela. La dernière erreur que j'ai eu était:
"System.Data.Entity.Infrastructure.DbUpdateException: Une erreur s'est produite lors de la mise à jour des entrées.Voir l'exception interne pour plus de détails ---> System.Data.UpdateException: Une erreur s'est produite Lors de la mise à jour des entrées, voir l'exception interne pour plus de détails ---> System.InvalidOperationException: Une propriété dépendante d'un ReferentialConstraint est mappée à une colonne générée par le stockage Colonne: 'ID'. "
Quel est le problème avec votre premier extrait de code? Les conventions Code-First doivent être correctement mappées sans autre configuration avec deux relations entre 'User' et' Address', n'est-ce pas? – Slauma