zoukankan      html  css  js  c++  java
  • EF获取数据库表名和列名

    EF获取数据库表名和列名

    新建
    模板
    小书匠
    1.  
    2. /// <summary> 
    3. /// 通过当前DBContext上下文获取对应数据库中所有得表 
    4. /// </summary> 
    5. /// <returns></returns> 
    6. public List<string> GetTableNames() 

    7. var TableNames = new List<string>(); 
    8. var metadata = ((IObjectContextAdapter) this).ObjectContext.MetadataWorkspace; 
    9. var tables = metadata.GetItemCollection(DataSpace.SSpace).GetItems<EntityContainer>().Single() 
    10. .BaseEntitySets.OfType<EntitySet>() 
    11. .Where(s => !s.MetadataProperties.Contains("Type") || 
    12. s.MetadataProperties["Type"].ToString() == "Tables"); 
    13. foreach (var table in tables) 

    14. var tableName = table.MetadataProperties.Contains("Table") && 
    15. table.MetadataProperties["Table"].Value != null 
    16. ? table.MetadataProperties["Table"].Value.ToString() 
    17. : table.Name; 
    18. var tableSchema = table.MetadataProperties["Schema"].Value.ToString(); 
    19. TableNames.Add(tableSchema + "." + tableName); 

    20. return TableNames; 

    21. public List<string> GetColumnNamesByTable(string tableName) 

    22. string name = tableName.Split('.')[1]; 
    23. string schema = tableName.Split('.')[0]; 
    24. var ColumnNames = new List<string>(); 
    25. var metadata = ((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace; 
    26. var table = metadata.GetItemCollection(DataSpace.SSpace).GetItems<EntityContainer>().Single().BaseEntitySets.OfType<EntitySet>().Where(s=>!s.MetadataProperties.Contains("Type") || s.MetadataProperties["Type"].ToString() == "Tables").FirstOrDefault(t => t.Table==name&&t.Schema==schema); 
    27.  
    28. foreach (var member in table.ElementType.Members) 

    29. var ColumnName = member.Name; 
    30. ColumnNames.Add(ColumnName); 

    31. return ColumnNames; 

  • 相关阅读:
    OOP & Pointer: Segment Tree
    ICPC_2020 上海站
    Notes: Kirchhoff's Matrix 基尔霍夫矩阵
    CS61A Homework: Church Numerals
    题解:[COCI2011-2012#5] BLOKOVI
    题解:SDOI2017 新生舞会
    题解:POI2012 Salaries
    题解:洛谷P1357 花园
    题解:CF593D Happy Tree Party
    题解 P2320 【[HNOI2006]鬼谷子的钱袋】
  • 原文地址:https://www.cnblogs.com/mmry/p/7159148.html
Copyright © 2011-2022 走看看