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
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.
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...