c# - 如何从 Entity Framework 中获取架构名称?

标签 c# entity-framework datacontext objectcontext

我有以下代码

using (WdmEntities context = new WdmEntities())
{
    //get object models from context
    ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
    var container = objContext.MetadataWorkspace.GetEntityContainer(objContext.DefaultContainerName, DataSpace.CSpace);
    List<string> schemas = new List<string>();
    foreach (var set in container.BaseEntitySets)
    {
        foreach (var metaproperty in set.MetadataProperties)
        {
            //here 
            if(metaproperty.Name == "Schema")
            {
                //but metaproperty.Value == NULL
                schemas.Add(metaproperty.Value);
            }
        }
    }
}

我得到空值而不是模式名称。我如何从 Entity Framework 中获取 shemas 的名称。 (在我的数据库中,我有两个不同的 shemas。)也许有人知道另一种方式?

最佳答案

我的方法不对。下面的代码显示了我如何获得方案的名称。

using (WdmEntities context = new WdmEntities())
{
    //get object models from context
    ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
    //get all full names types from object model
    var fullNameTypes = objContext.MetadataWorkspace.GetItems<EntityType>(DataSpace.OSpace);
    ///////////////////
    var conStr = objContext.Connection.ConnectionString;
    var connection = new EntityConnection(conStr);
    var workspace = connection.GetMetadataWorkspace();

    var entitySets = workspace.GetItems<EntityContainer>(DataSpace.SSpace).First().BaseEntitySets;

    for (int i = 0; i < fullNameTypes.Count; i++)
    {
        Type type = Type.GetType(fullNameTypes[i].FullName);
        string schema = entitySets[type.Name].MetadataProperties["Schema"].Value.ToString();   
    }
}

关于c# - 如何从 Entity Framework 中获取架构名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18587865/

相关文章:

linq-to-sql - 有什么方法可以提高 Linq-To-SQL 的性能?

c# - 绑定(bind)到 viewmodel 不工作 mvvm

c# - 具有自动实现属性和构造函数初始值设定项的结构

C#广播是UDP消息,监听多个回复

c# - MSDTC 和带有 Entity Framework 的多个数据库

entity-framework - 如何告诉 EF4 加载特定的相关对象?

c# - linq表达式可以不区分大小写吗

javascript - mvc 5如果dropdownlist选择的选项比所需的其他模型属性更多

c# - SQL 中的数据分组

设计时和运行时的 WPF 数据上下文