如何获取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; }