Laden...

System.InvalidOperationExceprion EntityFrameWork Core 2.1

Erstellt von Baumunk77 vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.303 Views
B
Baumunk77 Themenstarter:in
41 Beiträge seit 2014
vor 5 Jahren
System.InvalidOperationExceprion EntityFrameWork Core 2.1

verwendetes Datenbanksystem: MS-SQL 2017

Um zu vermeiden Option UseLazyLoadingProxies zu nutzen, habe ich folgendes ausprobiert:



public Teilnehmer(ILazyLoader lazyLoader) : base (lazyLoader)
{
}

Benutzer _createuser = null;
public virtual Benutzer CreateUser
{
     get => LazyLoader?.Load(this, ref _createuser);
      set => _createuser = value;
}


bei lesen der Klasse Teilnehmer kommt immer System.InvalidOperationExceprion:

Fehlermeldung:
"No field was found backing property 'CreateUser' of entity type 'Teilnehmer'.
Lazy-loaded navigation properties must have backing fields. Either name the backing field so that it is picked up by convention or configure the backing field to use."

in der Context Klasse:


protected override void OnModelCreating(ModelBuilder b)
{
     b.Entity<Teilnehmer>().HasOne<Benutzer>(t => t.CreateUser).WithMany(o => o.TeilnehmerCreated).HasPrincipalKey(p => p.ID).HasForeignKey(t => t.CreateUserID);
}

Kann mir jemand verraten was ich da falsch gemacht habe?
Voraus danke

T
2.224 Beiträge seit 2008
vor 5 Jahren

Lass den _ bei deinem _createUser weg, dann sollte es klappen.

Nachtrag:
Daran kann es doch nicht liegen.
Nach dem Code aus der aktuellen Doku müsste es eigentlich klappen.

Link:
https://docs.microsoft.com/de-de/ef/core/querying/related-data#lazy-loading

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

B
Baumunk77 Themenstarter:in
41 Beiträge seit 2014
vor 5 Jahren

Lass den _ bei deinem _createUser weg, dann sollte es klappen.

Von dem Link habe ich das auch.

Meinen Sie so:


Benutzer createuser = null;
public virtual Benutzer CreateUser
{
            get => LazyLoader?.Load(this, ref createuser);
            set => createuser = value;
}


Wenn ja, dann ist es leider nicht die lösung, Exception kommt trotzdem...