EF CodeFirst:获取DbContext的所有POCO类型

DrA*_*eri 7 entity-framework poco ef-code-first dbcontext

有没有办法从指定的DbContext实例中获取POCO的类型?

Era*_*nga 6

您需要访问MetadataWorkspace

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)
        {
            Console.WriteLine("Class Name: {0}", i.Name);
        }
 }
Run Code Online (Sandbox Code Playgroud)


小智 6

不幸的是,我无法编辑接受的答案 - 您只需要按如下方式更改使用的数据空间

var items = mdw.GetItems<EntityType>(DataSpace.OSpace);
Run Code Online (Sandbox Code Playgroud)

获取您的 POCO 类而不是 EF 代理。