C# 如何使用MetadataWorkspace以编程方式读取EDMX文件?

C# 如何使用MetadataWorkspace以编程方式读取EDMX文件?,c#,.net,entity-framework,C#,.net,Entity Framework,我试图通过编程读取实体框架EDMX文件 我知道这是一个普通的XML,所以我可以自己读取XML并提取数据,但由于有一个可用的API,我正在尝试使用它 下面的代码可以工作,只是我无法获得OCSpace,它表示类型和表之间的关联。这是我最重要的部分 var csdlEntities = mdw.GetItems(DataSpace.CSpace) .Where(x => x is EntityType) .T

我试图通过编程读取实体框架EDMX文件

我知道这是一个普通的XML,所以我可以自己读取XML并提取数据,但由于有一个可用的API,我正在尝试使用它

下面的代码可以工作,只是我无法获得OCSpace,它表示类型和表之间的关联。这是我最重要的部分

var csdlEntities = mdw.GetItems(DataSpace.CSpace)
                      .Where(x => x is EntityType)
                      .ToList();

var csdlAssociations = mdw.GetItems(DataSpace.CSpace)
                          .Where(x => x is AssociationType)
                          .ToList();

var ssdlEntities = mdw.GetItems(DataSpace.SSpace)
                      .Where(x => x is EntityType)
                      .ToList();

var ssdlAssociations = mdw.GetItems(DataSpace.SSpace)
                          .Where(x => x is AssociationType)
                          .ToList();

// EXCEPTION HERE
var mappings = mdw.GetItems(DataSpace.OCSpace).Where(x => x is EntityType).ToList();
这是引发异常InvalidOperationException的行,OCSpace没有关联的集合:

var mappings = mdw.GetItems(DataSpace.OCSpace).Where(x => x is EntityType).ToList();

可能有什么问题?

要引用的类和工作区是否在同一命名空间中?工作区是否位于正确的位置?“看来是这样,”德拉普。无论如何,谢谢你。