【问题标题】:Getting Table and Column Names from DbContext从 DbContext 获取表名和列名
【发布时间】:2015-05-19 18:18:26
【问题描述】:

对于新的公共映射 API,从实体到获取相应的数据库架构和表名以及实体属性到列名的映射的正确方法是什么?

【问题讨论】:

    标签: entity-framework entity-framework-6.1


    【解决方案1】:

    这是使用数据库优先方法生成的 ADO.NET 实体数据模型的参考。它使用 DbContext 的连接提供的模式。

    架构限制不是强制的,只是返回更清晰的结果。欲了解更多信息,请查看 https://msdn.microsoft.com/en-us/library/cc716722(v=vs.110).aspx

      using (var dbContext = new DbGeneratedByEfEntities())
      {
        var conn = dbContext.Database.Connection;
        conn.Open();
    
        var restrictions = default(string[]);
    
        // please replace DbName and Owner with the actual value
        restrictions = new string[] { "DbName", "dbo" };
    
        // get DataTable from schema with collection name of "Tables"
        var tablesDataTable = conn.GetSchema(SqlClientMetaDataCollectionNames.Tables, restrictions);
    
        // show column names
        Debug.WriteLine(string.Join(" | ", tablesDataTable.Columns.Cast<DataColumn>()));
    
        // show row contents, table names from schema
        tablesDataTable.Rows.Cast<DataRow>().ToList().ForEach(r =>
        {
          Debug.WriteLine(string.Join(" | ", r.ItemArray));
        });
    
        /************************/
    
        // please replace DbName, Owner and TableName with the actual value
        restrictions = new string[] { "DbName", "dbo", "TableName" };
    
        // get DataTable from schema with collection name of "Columns"
        var colsDataTable = conn.GetSchema(SqlClientMetaDataCollectionNames.Columns, restrictions);
    
        // show column names
        Debug.WriteLine(string.Join(" | ", colsDataTable.Columns.Cast<DataColumn>()));
    
        // show row contents, field names from schema
        colsDataTable.Rows.Cast<DataRow>().ToList().ForEach(r =>
        {
          Debug.WriteLine(string.Join(" | ", r.ItemArray));
        });
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多