首先在EF代码中,使用fluent接口指定字段属性和关系。这构建了一个模型。是否可以获得对该模型的引用,并对其进行反思? 我希望能够检索给定字段,如果需要,它的数据类型是什么,长度等等......
答案 0 :(得分:2)
您需要访问MetadataWorkspace。 API非常神秘。您可能希望将DataSpace.CSpace
替换为DataSpace.SSpace
以获取数据库元数据。
public class MyContext : DbContext
{
public void Test()
{
var objectContext = ((IObjectContextAdapter)this).ObjectContext;
var mdw = objectContext.MetadataWorkspace;
var items = mdw.GetItems<EntityType>(DataSpace.CSpace);
foreach (var i in items)
{
foreach (var member in i.Members)
{
var prop = member as EdmProperty;
if (prop != null)
{
}
}
}
}