EF Code First,如何反思模型

时间:2011-12-30 13:27:42

标签: entity-framework-4 ef-code-first

首先在EF代码中,使用fluent接口指定字段属性和关系。这构建了一个模型。是否可以获得对该模型的引用,并对其进行反思? 我希望能够检索给定字段,如果需要,它的数据类型是什么,长度等等......

1 个答案:

答案 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)
                {

                }
            }
        }
 }