Page 1 of 1

Die eigene Sammlung wird beim Abfragen der übergeordneten Entität mit SQLite nicht aufgefüllt [Duplikat]

Posted: 14 Jan 2025, 09:23
by Guest
Ich habe eine Entität mit einer IReadOnlyList-Eigenschaft, der ein privates Listenfeld zugrunde liegt. Ich möchte diese Eins-zu-viele-Beziehung mithilfe von Entity Framework Core mit einer Instanz von IEntityTypeConfiguration konfigurieren.
Die beiden Entitäten:

Code: Select all

public class ParentEntity
{
private ParentEntity(){}

public long Id { get; set; }
private readonly List _childEntities = new();
public IReadOnlyCollection ChildEntities => _childEntities;
}

public class ChildEntity
{
private ChildEntity(){}

public long Id { get; set; }
public string SomeProperty { get; set; }
}
Die Konfiguration:

Code: Select all

public class ParentEntityConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.ToTable("ParentEntities");
builder.HasKey(pe => pe.Id);

builder.OwnsMany(pe => pe.ChildEntities, childEntity =>
{
childEntity.WithOwner().HasForeignKey("ParentEntityId");
childEntity.ToTable("ChildEntities");
childEntity.HasKey(ce => ce.Id);

childEntity.Property(ce => ce.SomeProperty).IsRequired();
});

builder.Navigation(pms => pms.ChildEntities).UsePropertyAccessMode(PropertyAccessMode.Field);
}
}
Paket: Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.0"
Ergebnis: Wenn ich mir die Tabellen in der Datenbank ansehe, sehe ich, dass die Beziehung mit Fremdschlüsseln korrekt eingerichtet ist und Werte mithilfe meines dbContext hinzugefügt werden können.
Wenn ich jedoch den Kontext abfrage, es füllt nie die _childEntities Liste.
Die Abfrage sieht so aus:

Code: Select all

List entities = _parentEntityContext.ParentEntities
.Include(p => p.ChildEntities)
.ToList();