Как получить все имена таблиц, используя DbModelBuilder EF Code-First - PullRequest
0 голосов
/ 28 октября 2019

Я хочу получить все имена таблиц в OnModelCreating для реализации оператора sql alter при запуске команды update-database. Я пробовал так много решений, существующих здесь в stackoverlow, но ничего не получалось. Вот пример

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            var metadata = ((IObjectContextAdapter)context).ObjectContext.MetadataWorkspace;

            var tables = metadata.GetItemCollection(DataSpace.SSpace)
                .GetItems<EntityContainer>()
                .Single()
                .BaseEntitySets
                .OfType<EntitySet>()
                .Where(s => !s.MetadataProperties.Contains("Type")
                || s.MetadataProperties["Type"].ToString() == "Tables");
            string sql = "";
            foreach (var table in tables)
            {
                var tableName = table.MetadataProperties.Contains("Table")
                    && table.MetadataProperties["Table"].Value != null
                    ? table.MetadataProperties["Table"].Value.ToString()
                    : table.Name;
            }
        }

, и я тоже попробовал это EF CodeFirst - Получить все сущности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...