Eine oder mehrere der Schlüssel- oder Fremdschlüsseleigenschaften sind Schatteneigenschaften und die Entität wird nicht
Posted: 12 Jan 2025, 12:11
Ich habe die folgende Entitätsklasse:
Sehr selten, wenn versucht wird, () eine Instanz einer Entität, die bereits zur Datenbank hinzugefügt wurde, erhalte ich die folgende System.InvalidOperationException-Ausnahme:
The navigation „ServicePackage.Service“ kann nicht geladen werden, da
eine oder mehrere der Schlüssel- oder Fremdschlüsseleigenschaften Schatteneigenschaften sind und
die Entität nicht verfolgt wird. Beziehungen, die Schattenwerte verwenden, können
nur für nachverfolgte Entitäten geladen werden.
Stack Trace:
Microsoft.EntityFrameworkCore.Internal.EntityFinder'1.GetLoadValues(INavigation,
InternalEntityEntry)
← Microsoft.EntityFrameworkCore.Internal.EntityFinder'1.Load(INavigation,
InternalEntityEntry, LoadOptions)
← Microsoft.EntityFrameworkCore.ChangeTracking.ReferenceEntry.Load(LoadOptions)
← Microsoft.EntityFrameworkCore.Infrastructure.Internal.LazyLoader.Load(Object,
String)
← Castle.DynamicProxy.AbstractInvocation.Proceed()
← Castle.Proxies.ServicePackageProxy.get_Service()
Was könnte das Problem sein und warum tritt der Fehler zeitweise auf? Methodenüberschreibung:
.NET-Version: 8.0; Microsoft.EntityFrameworkCore.SqlServer-Version: 8.0.8
Code: Select all
internal class ServicePackage {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[ForeignKey("ServiceId")]
[DeleteBehavior(DeleteBehavior.ClientNoAction)]
public virtual Service Service { get; set; }
public decimal Cost { get; set; }
}
Code: Select all
dbContext.ServicePackages.Attach
The navigation „ServicePackage.Service“ kann nicht geladen werden, da
eine oder mehrere der Schlüssel- oder Fremdschlüsseleigenschaften Schatteneigenschaften sind und
die Entität nicht verfolgt wird. Beziehungen, die Schattenwerte verwenden, können
nur für nachverfolgte Entitäten geladen werden.
Stack Trace:
Microsoft.EntityFrameworkCore.Internal.EntityFinder'1.GetLoadValues(INavigation,
InternalEntityEntry)
← Microsoft.EntityFrameworkCore.Internal.EntityFinder'1.Load(INavigation,
InternalEntityEntry, LoadOptions)
← Microsoft.EntityFrameworkCore.ChangeTracking.ReferenceEntry.Load(LoadOptions)
← Microsoft.EntityFrameworkCore.Infrastructure.Internal.LazyLoader.Load(Object,
String)
← Castle.DynamicProxy.AbstractInvocation.Proceed()
← Castle.Proxies.ServicePackageProxy.get_Service()
Was könnte das Problem sein und warum tritt der Fehler zeitweise auf?
Code: Select all
DbContext.OnConfiguring
Code: Select all
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseSqlServer(SqlConnectionString);
optionsBuilder.UseLazyLoadingProxies();
base.OnConfiguring(optionsBuilder);
}