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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

by Guest » 14 Jan 2025, 09:23

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();

Top