我正在使用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获取表名列表?
答案 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。