实体框架 - 如何从Edmx获取表名

时间:2013-04-26 06:37:28

标签: entity-framework edmx

我正在使用asp.net mvc3。

我有一个创建了ADO.NET实体数据模型的edmx。 (数据前)

TestDb.Designer.cs

namespace Test.Web.DataModel
{
    public partial class TestDbContext : ObjectContext
    {
         public ObjectSet<T_Members> T_Members { ... }
         public ObjectSet<T_Documents> T_Documents { ... }
         ....
    }
}

T_Members,T_Documents&lt; - 此属性是数据库的表。

我想获得此表的列表。

如何从EDMX获取表名列表?

2 个答案:

答案 0 :(得分:1)

回答我自己。

TestDbContext context = new TestDbContext();
var tableList = context.MetadataWorkspace.GetItems<EntityType>(System.Data.Metadata.Edm.DataSpace.CSpace);
foreach (var item in tableList)
{
    item.Name;
}

为有同样问题的人提供帮助......

答案 1 :(得分:0)

我认为您的'解决方案'仅在表和实体具有相同名称时才有效。 如果您将实体重命名为Document(没有前缀),则会失败。

来自Microsoft employee的引用:

  

不,遗憾的是,使用元数据API无法实现这一目标   给定实体的表名。这是因为Mapping元数据   不公开,所以没有办法从C-Space到S-Space使用   EF的API。