如何获取EF 5中所有实体的列表?

我正在构建一个MVC 4应用程序。 我有一个下拉列表,需要显示所有使用的表(实体)..

我怎样才能做到这一点? 我首先使用EF 5代码配置。

任何帮助,将不胜感激。

谢谢

此代码将为您提供这些代码,当然是已导入到EDM的代码,这些代码不一定是数据存储中的所有表。

var tableNames = context.MetadataWorkspace.GetItems(DataSpace.SSpace) .Select(t => t.Name) .ToList(); 

对于代码优先:

 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); } 

这对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; }