这个问题在这里已有答案:
我正在使用Entity Framework 4.1和Code First方法 . 我能够获取我的实体的存储模型类型和列名:
var items = context.ObjectContext.MetadataWorkspace.GetItems<EntityType>(DataSpace.SSpace);
foreach (var i in items)
{
Console.WriteLine("Table Name: {0}", i.Name);
Console.WriteLine("Keys:");
foreach (var key in i.KeyMembers)
Console.WriteLine("\t{0} ({1})", key.Name, key.TypeUsage.EdmType.FullName);
Console.WriteLine("Members:");
foreach (var member in i.Members)
Console.WriteLine("\t{0} ({1})", member.Name, member.TypeUsage.EdmType.FullName);
}
我需要的是获取实体映射到的真实表名 . 有不同的方法来指定(通过使用Fluent-API .ToTable(),DataAnnotation [TableAttribute]) .
有没有通用的方法来获得这些信息?
3 回答
我发现获取表名的最简单方法如下:
这将获得表实体 .
然后,您可以执行以下操作以提取名称:
请注意,如果您复制上下文,则需要撤消该上下文 .
EF 6.1,代码优先:
您还可以通过其他方式获取EDM表名称