Ho un'entità che ha posseduto il tipo e voglio creare una relazione con un'altra entità ma la proprietà della chiave esterna esiste nell'esempio del tipo di proprietà: - Questa è la mia entità dipendente
public sealed class Employee : AuditedAggregateRoot
{
public WorkInformation WorkInformation { get; private set; }
}
e contiene un valore Object (Owned Type) chiamato WorkInformation
public class WorkInformation : ValueObject<WorkInformation>
{
private WorkInformation()
{
}
public int? DepartmentId { get; private set; }
}
e ho bisogno di creare una relazione tra dipendente e dipartimento
public class Department : AuditedAggregateRoot
{
}
e uso la seguente configurazione fluida per farlo ma ho ricevuto un errore
builder.OwnsOne(e => e.WorkInformation)
//Add Employee Relations
builder.HasOne<Department>()
.WithMany()
.IsRequired(false)
.HasForeignKey(e => e.WorkInformation.DepartmentId);
se sposto il DepartmentId sull'entità proprietario, funziona benissimo.
I tipi di proprietà (proprietà, relazioni, ecc.) Non possono essere configurati tramite il generatore di tipi proprietario. Utilizzare invece ReferenceOwnershipBuilder
restituito dal metodo OwnsOne
:
var workInfomationBuilder = builder.OwnsOne(e => e.WorkInformation);
//Add Employee Relations
workInfomationBuilder.HasOne<Department>()
.WithMany()
.IsRequired(false)
.HasForeignKey(e => e.DepartmentId);