Entity Framework - Get List of Tables

前端 未结 3 1272
天命终不由人
天命终不由人 2020-12-01 02:48

That\'s it. It\'s pretty simple. I\'ve got an edmx and want to be able to dynamically query it for tables and (hopefully), dynamically build against that table. Is that p

3条回答
  •  有刺的猬
    2020-12-01 03:53

    This sample code from post What Tables Are In My EF Model? And My Database?

    using (var dbContext = new YourDbContext())
    {
        var metadata = ((IObjectContextAdapter)dbContext).ObjectContext.MetadataWorkspace;
    
        var tables = metadata.GetItemCollection(DataSpace.SSpace)
            .GetItems()
            .Single()
            .BaseEntitySets
            .OfType()
            .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);
        }
    }
    

提交回复
热议问题