创建 DbContext 而不连接到数据库

Bat*_*bix 5 .net c# entity-framework dbcontext

有没有办法在不实际连接到数据库的情况下创建 DbContext?

我希望能够访问 CSDL 和 SSDL 元数据,如下所示:

var objContext = ((IObjectContextAdapter)myDbContext).ObjectContext;
var ssdl = objContext.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
var csdl = objContext.MetadataWorkspace.GetItemCollection(DataSpace.CSpace);
Run Code Online (Sandbox Code Playgroud)

但我根本不想访问数据库。理想情况下,我希望能够在没有数据库的情况下访问 SSDL/CSDL 元数据。

Foo*_*ool 1

dbContext 是数据库的抽象。如果没有数据库,就没有抽象。当然,您可以在不连接到数据库的情况下创建 DbContext。如果您将上下文的数据库初始值设定项设置为 null,则 Code First 将永远不会尝试为您创建数据库:

DbDatabase.SetInitializer<MyContext>(null);
Run Code Online (Sandbox Code Playgroud)

但它对你的情况没有用

  • 有没有什么方法可以在没有 DbContext/ObjectContext 和数据库的情况下获取元数据? (2认同)