在运行时访问 Entity Framework 存储模型

Access Entity Framework Storage Model at runtime

所以我还有另一个问题:Entity Framework - Determine the HasDatabaseGeneratedOption setting for a given type

我认为要回答这个问题,我只需要访问给定 DbContext 的存储模型(使用 OnModelCreating 创建的模型)。

有什么想法吗?

从给定的 dbcontext...你可以这样做

var mw = ((IObjectContextAdapter)context).ObjectContext.MetadataWorkspace; 

看到这个https://msdn.microsoft.com/en-us/library/system.data.metadata.edm.metadataworkspace_methods(v=vs.110).aspx

要访问存储模型,您可以这样做:

var sSpaceEntities = (StoreItemCollection)mw.GetItemCollection(DataSpace.SSpace);

将此用于 DataSpace 可用性 https://msdn.microsoft.com/en-us/library/system.data.metadata.edm.dataspace(v=vs.110).aspx

你可以在调试的时候玩弄这个对象,你可以找到很多信息。