[英]how to get a list of all entities in 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<EntityType> tables = workspace.GetItems<EntityType>(DataSpace.SSpace);
}
在EF 6上,這對我來說效果很好
public List<string> EntityNames()
{
ObjectContext objContext = ((IObjectContextAdapter)myDbContext).ObjectContext;
MetadataWorkspace workspace = objContext.MetadataWorkspace;
IEnumerable<EntityType> tables = workspace.GetItems<EntityType>(DataSpace.SSpace);
List<string> lst = new List<string>();
foreach (var table in tables)
{
var entityName = table.FullName.Replace("CodeFirstDatabaseSchema.", "");
lst.Add($"{entityName}");
}
return lst;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.