5

Sto riscontrando alcuni problemi durante il salvataggio nel database di un modello con una relazione poco complessa.Relazione EF uno-a-due

UML delle classi è: enter image description here

La definizione classi sono:

public abstract class EntityBase 
{ 
    public virtual Guid Id { get; set; } 
} 

public class LoanRequest : EntityBase 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public virtual Applicant Applicant1 { get; set; } 
    public virtual Applicant Applicant2 { get; set; } 
} 

public class Applicant 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public Guid LoanRequestId { get; set; } 
    [ForeignKey("LoanRequestId")] 
    public virtual LoanRequest LoanRequest { get; set; } 

    public virtual ICollection<MonthlyIncome> Incomes { get; set; } 
} 

public class MonthlyIncome 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public Guid ApplicantId { get; set; } 
    [ForeignKey("ApplicantId")] 
    public virtual Applicant Applicant { get; set; }  
} 

Sono in grado di eseguire una migrazione e guardando nel database le tabelle e le colonne creato da quadro mi sembra a posto. Ma, quando si salva un'eccezione accade. L'eccezione è:

Impossibile determinare un ordine valido per le operazioni dipendenti. possono esistere Dipendenze causa di vincoli di stranieri chiave, requisiti di modello, o memorizzare i valori generati

Sono stato alla ricerca di una soluzione su internet e non riesco a vedere dove il mio problema è. Eventuali suggerimenti? Grazie!

+0

Che cosa stai cercando di salvare? E come appare il metodo di salvataggio? – janhartmann

risposta

2

Dopo diversi tentativi sono riuscito a trovare una soluzione. Cambiare la definizione richiedente:

public class Applicant 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public virtual ICollection<MonthlyIncome> Incomes { get; set; } 
} 

era tutto il necessario

Problemi correlati