Entity framework EntityFramework-如何从Edmx获取表名
我正在使用asp.net mvc3 我有一个由ADO.NET实体数据模型创建的edmx。(数据优先) TestDb.Designer.csEntity framework EntityFramework-如何从Edmx获取表名,entity-framework,edmx,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&l
namespace Test.Web.DataModel
{
public partial class TestDbContext : ObjectContext
{
public ObjectSet<T_Members> T_Members { ... }
public ObjectSet<T_Documents> T_Documents { ... }
....
}
}
namespace Test.Web.DataModel
{
公共部分类TestDbContext:ObjectContext
{
公共对象集T_成员{…}
公共对象集T_文档{…}
....
}
}
小组成员,小组文件回答我自己
TestDbContext context = new TestDbContext();
var tableList = context.MetadataWorkspace.GetItems<EntityType>(System.Data.Metadata.Edm.DataSpace.CSpace);
foreach (var item in tableList)
{
item.Name;
}
TestDbContext context=newtestdbcontext();
var tableList=context.MetadataWorkspace.GetItems(System.Data.Metadata.Edm.DataSpace.CSpace);
foreach(表列表中的变量项)
{
项目名称;
}
帮助有同样问题的人…回答我自己
TestDbContext context = new TestDbContext();
var tableList = context.MetadataWorkspace.GetItems<EntityType>(System.Data.Metadata.Edm.DataSpace.CSpace);
foreach (var item in tableList)
{
item.Name;
}
TestDbContext context=newtestdbcontext();
var tableList=context.MetadataWorkspace.GetItems(System.Data.Metadata.Edm.DataSpace.CSpace);
foreach(表列表中的变量项)
{
项目名称;
}
为了帮助有相同问题的人…我认为您的“解决方案”只有在表和实体具有相同名称时才有效。 如果将实体重命名为Document(不带前缀),则将失败 引自微软: 不,不幸的是,使用元数据API无法访问 给定实体的表名。这是因为映射元数据 不是公共的,所以没有办法使用 EF的API
我认为您的“解决方案”只有在表和实体具有相同名称时才有效。 如果将实体重命名为Document(不带前缀),则将失败 引自微软: 不,不幸的是,使用元数据API无法访问 给定实体的表名。这是因为映射元数据 不是公共的,所以没有办法使用 EF的API
这绝对是最简单的方法。好极了!这绝对是最简单的方法。好极了!那是一个老帖子。请在同一页上查看解决方案。至少对于简单的继承层次结构来说,它是有效的。并链接到更多关于访问元数据API的信息,这是一篇老文章。请在同一页上查看解决方案。至少对于简单的继承层次结构来说,它是有效的。并提供了有关访问元数据API的更多信息的链接相似:相似: