我正在参与一个大型项目,其中有50多个
每个
从集中式视图/报告中,我想以父子视图查看所有
如何在LinQ查询或C#函数中获取所有
使用以下代码,我获得了
DbContext
和每个DbContext
下有100多个DbSet
。每个
DbContext
由单独的团队处理,并根据他们的需求/更改添加/删除DbSet
。从集中式视图/报告中,我想以父子视图查看所有
DbContext
类和每个DbContext
下的所有DbSet
,以管理数据库。如何在LinQ查询或C#函数中获取所有
DbContext
类和每个DbContext
下的所有DbSet
?使用以下代码,我获得了
DbContext
下的DbSets
列表,但在我的情况下,可能会有新的DbContext
。var metadata = ((IObjectContextAdapter)dbContext).ObjectContext.MetadataWorkspace;
var tables = metadata.GetItemCollection(DataSpace.SSpace)
.GetItems<EntityContainer>()
.Single()
.BaseEntitySets
.OfType<EntitySet>()
.Where(s => !s.MetadataProperties.Contains("Type")
|| s.MetadataProperties["Type"].ToString() == "Tables");
foreach (var table in tables)
{
var tableName = table.MetadataProperties.Contains("Table")
&& table.MetadataProperties["Table"].Value != null
? table.MetadataProperties["Table"].Value.ToString()
: table.Name;
var tableSchema = table.MetadataProperties["Schema"].Value.ToString();
Console.WriteLine(tableSchema + "." + tableName);
}
我正在寻找一个动态列表,其中应该包括新的DbContext。
如何在Linq查询或C#函数中获取所有DbContext类和每个DbContext下的所有DbSet。