Tout d'abord permettez-moi de m'excuser pour le titre pauvre, je ne suis pas tout à fait conscient de ce que j'appelle ce sujet.Code d'abord, plusieurs clés étrangères
.. Enfin bref
Je suis en train de créer une relation BankAccount<-->Transactions
en utilisant le code premier.
Voici mes "classes d'entités"
public class BankAccount : BaseEntity
{
public string Name { get; set; }
public double Balance { get; set; }
public virtual long UserId { get; set; }
public virtual User User { get; set; }
public virtual ICollection<Transaction> FromTransactions { get; set; }
public virtual ICollection<Transaction> ToTransactions { get; set; }
}
et
public class Transaction : BaseEntity
{
public string Message { get; set; }
public double Amount { get; set; }
public virtual long ToId { get; set; }
public virtual BankAccount To { get; set; }
public virtual long FromId { get; set; }
public virtual BankAccount From { get; set; }
}
Comme vous pouvez le voir, je voudrais une transaction pour être en mesure d'avoir un "From" BankAccount
et un "A" BankAccount
pour faciliter la navigation d'une transaction vers le (s) compte (s) bancaire (s) associé (s). Le BankAccount
a également deux collections de transactions, une "De" et une "À", et c'est aussi pour faciliter la navigation entre les objets.
La chose est que dès que je lance Update-Database
il échoue avec:
modifications en conflit au rôle « BankAccount_ToTransactions_Source » de la relation « de OpenFridge.Api.Data.BankAccount_ToTransactions » ont été détectés
J'ai également ajouté les deux suivants EntityTypeConfigurations
:
public class BankAccountEntityTypeConfiguration : BaseEntityTypeConfiguration<BankAccount>
{
public BankAccountEntityTypeConfiguration()
{
ToTable("BankAccounts");
HasRequired(e => e.User)
.WithMany(e => e.BankAccounts);
Property(e => e.Balance)
.IsRequired();
Property(e => e.Name)
.IsRequired();
HasMany(e => e.ToTransactions)
.WithRequired(e => e.To).WillCascadeOnDelete(false);
HasMany(e => e.FromTransactions)
.WithRequired(e => e.From).WillCascadeOnDelete(false);
}
}
public class TransactionEntityTypeConfiguration : BaseEntityTypeConfiguration<Transaction>
{
public TransactionEntityTypeConfiguration()
{
ToTable("Transactions");
Property(e => e.Amount)
.IsRequired();
HasRequired(e => e.From);
HasRequired(e => e.To);
}
}
Toute idée de comment créer ce genre de relation de manière appropriée? Je pourrais simplement manquer quelque chose dans ma base de données de conception et ..
Br, Inx