Forzare il caricamento dei metadati con il DbContext di Entity Framework
Quando istanziamo il DbContext, Entity Framework non carica automaticamente tutti i metadati dell'EDM all'interno del DbContext stesso. Se proviamo ad accedere ai metadati che non sono caricati, quello che otteniamo è un'eccezione di dati non trovati.
Per evitare l'eccezione, dobbiamo scatenare il caricamento di tutti i metadati eseguendo una qualunque query sul database. Tuttavia, eseguire una query solo per recuperare i metadati è uno spreco di risorse. Per evitare di eseguire una query possiamo semplicemente invocare il metodo ToString di un DbSet qualsiasi esposto dal DbContext. In questo modo Entity Framework è costretto a recuperare tutti i metadati in quanto deve generare il codice SQL per quel DbSet senza però eseguire alcuna query.
(using ctx = new MyContext()){ ctx.MySet.ToString(); //codice per accedere ai metadati }







