J'ai une application C# qui utilise Entity Framework 6. J'Interroger une base de données comme ceci:Entity Framework - ChangeTracker contient de nombreux articles
public static DB.Core.DBBlob getBlob(DB.Core.DBAspect aspect, int index)
{
var blobs = aspect.DBBlobs.Where(b => b.Index == index);
return blobs.OrderByDescending(b => b.CreationTime).FirstOrDefault();
}
Le problème est maintenant que le ChangeTracker contient 2 entrées
Le premier élément est celui que j'ai interrogé à partir de la base de données et le second est celui que j'ai exclu avec l'instruction where (je veux seulement avoir l'élément avec Index == 1).
Il semble que EF6 charge les deux entrées de la base de données et ajoute au changetracker.
I Tried Vous avez déjà défini les paramètres suivants:
dbm.Configuration.AutoDetectChangesEnabled = false;
dbm.Configuration.LazyLoadingEnabled = false;
dbm.Configuration.ProxyCreationEnabled = false;
Espérons que quelqu'un peut me aider.
Quel est exactement le problème? Avez-vous peur des problèmes de performance? Êtes-vous sûr que les valeurs des entités sont chargées ou sont-elles chargées lorsque vous déboguez et y accédez? –
Le problème est que l'infrastructure d'entité charge les données de la base de données et la mémoire augmente. La performance diminue également. – user3107989
Êtes-vous vraiment sûr à ce sujet ou sont-ce des hypothèses? Si c'était comme vous le dites, ce serait un problème ** énorme ** et EF ne serait pas utilisable du tout si les tables grossissaient. –