2010-12-29 3 views
1

Мне нужно получить список всех таблиц в структуре данных сущностей.Как получить список всех таблиц в структуре данных Entity?

Я знаю, что в Linq2SQL мы можем использовать что-то вроде этого. var dataContext = new DataContext(); var dataContextTableNames = (из таблиц в dataContext.Mapping.GetTables() select tables.TableName) .ToList();

Но мне нужно получить список всех таблиц в Entity Data Framework. Существует какая-либо работа, чтобы получить аналогичный список в Entity Data Framework.

Заранее спасибо.

ответ

1

[Редактировать]

Возможно, это может быть полезным, чтобы найти число объектов в хранилище пространстве

var count = GetEntitySetCount(myObjectContext.MetadataWorkspace); 

    public static int GetEntitySetCount(MetadataWorkspace workspace) 
    { 
     var count = 0; 

     // Get a collection of the entity containers from storage space. 
     var containers = workspace.GetItems<EntityContainer>(DataSpace.SSpace); 

     foreach(var container in containers) 
     { 
      //Console.WriteLine("EntityContainer Name: {0} ", 
      //     container.Name); 

      foreach(var baseSet in container.BaseEntitySets) 
      { 
       if(baseSet is EntitySet) 
       { 
        count++; 

        //Console.WriteLine(
        // " EntitySet Name: {0} , EntityType Name: {1} ", 
        // baseSet.Name, baseSet.ElementType.FullName); 
       } 
      } 
     } 

     return count; 
    } 

Чтобы получить количество таблиц в базе данных, вы можете сделать следующее. Net 4,0

myObjectContext.ExecuteStoreQuery<int>(
       "SELECT COUNT(*) from information_schema.tables WHERE table_type = 'base table'"); 

Использование .Net 3.5

var connection = ((EntityConnection)myObjectContext.Connection).StoreConnection as SqlConnection; 

var cmd = new SqlCommand("SELECT COUNT(*) from information_schema.tables WHERE table_type = 'base table'", connection); 

connection.Open(); 

var count = (int)cmd.ExecuteScalar(); 

connection.Close(); 
+0

получает список таблиц из базы данных. Мне нужно получить все lsit всех таблиц из модели. – SKumar

+0

Если вы не используете базу данных для не связанных с EF вещей, это будет count - 1 (для таблицы EdmMetadata) –

+0

Проблема в том, что я обновил базу данных, я удалил некоторые таблицы из базы данных. Но я не хочу обновлять модель до тех пор, пока не узнаю, что количество таблиц в базе данных и EF не одинаково. Итак, мне нужно знать, как подсчитать количество таблиц в EF сейчас. – SKumar

Смежные вопросы