Je construis une application MVC 4. J’ai vue qui a une liste déroulante qui doit afficher toutes les tables (entités) utilisées ..
Comment puis je faire ça? J’utilise d’abord le code EF 5 avec des configurations.
Toute aide serait appréciée.
Merci
Ce code les obtiendra pour vous, bien entendu ceux qui ont été importés dans votre EDM, qui ne correspondent pas nécessairement à toutes les tables de votre magasin de données.
var tableNames = context.MetadataWorkspace.GetItems(DataSpace.SSpace) .Select(t => t.Name) .ToList();
Pour le code d’abord:
using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Entity.Infrastructure; ... using (dbcontext context = new TestContext()) { ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext; MetadataWorkspace workspace = objContext.MetadataWorkspace; IEnumerable tables = workspace.GetItems (DataSpace.SSpace); }
Cela fonctionne très bien pour moi sur EF 6
public List EntityNames() { ObjectContext objContext = ((IObjectContextAdapter)myDbContext).ObjectContext; MetadataWorkspace workspace = objContext.MetadataWorkspace; IEnumerable tables = workspace.GetItems (DataSpace.SSpace); List lst = new List (); foreach (var table in tables) { var entityName = table.FullName.Replace("CodeFirstDatabaseSchema.", ""); lst.Add($"{entityName}"); } return lst; }