Nano Hash - криптовалюты, майнинг, программирование

Первые миграции кода Entity Framework 4.4.0 на MySql продолжают добавлять dbo в новые таблицы

У меня есть первая миграция кода Entity Framework 4.4.0 (EF5) для базы данных MySql, но когда я запускаю команду Add-Migration, я всегда получаю dbo перед именами таблиц, например:

    CreateTable(
            "dbo.Fields",
            c => new
                {
                    FieldId = c.Int(nullable: false, identity: true),
                    FieldTypeId = c.Int(nullable: false),
                    Name = c.String(nullable: false, unicode: false),
                    Description = c.String(unicode: false),
                    CodeList = c.String(unicode: false),
                    Mask = c.String(unicode: false),
                })
            .PrimaryKey(t => t.FieldId)
            .ForeignKey("dbo.FieldTypes", t => t.FieldTypeId, cascadeDelete: true)
            .Index(t => t.FieldTypeId);

Я использую поставщика базы данных Devart, и мой класс конфигурации миграции выглядит следующим образом:

    internal sealed class Configuration : DbMigrationsConfiguration<mydbcontext>
{
    public Configuration()
    {
        // Create a custom connection to specify the database and set a SQL generator for MySql.
        var connectionInfo =
            MySqlConnectionInfo.CreateConnection("<<myconnectionstring>>");

        TargetDatabase = connectionInfo;

        SetSqlGenerator(connectionInfo.GetInvariantName(), new MySqlEntityMigrationSqlGenerator());

        var config = MySqlEntityProviderConfig.Instance;
        config.Workarounds.IgnoreSchemaName = true;

        AutomaticMigrationsEnabled = false;
    }

    protected override void Seed(CloudDataSetDbContext context)
    {

    }
}

По какой-то причине IgnoreSchemaName = true не учитывается.

Я добавил поставщика базы данных Devart в файл web.config следующим образом:

    <system.data>
<DbProviderFactories>
  <remove invariant="Devart.Data.MySql" />
  <add name="dotConnect for MySQL" invariant="Devart.Data.MySql" description="Devart dotConnect for MySQL" type="Devart.Data.MySql.MySqlProviderFactory, Devart.Data.MySql, Version=6.80.350.0, Culture=neutral, PublicKeyToken=09af7300eec23701" />
</DbProviderFactories>

And I also added an assembly redirect because Devart needs this like so:

    <dependentAssembly>
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
    <bindingRedirect oldVersion="4.3.1.0" newVersion="4.4.0.0" />
  </dependentAssembly>

Может ли кто-нибудь помочь мне здесь? Спасибо, Стивен.


Ответы:


1

Попробуйте настроить их параметры конфигурации Singleton перед вызовом SetSqlGenerator. У меня есть сомнительная идея, что они будут использовать текущие настройки, как они были при настройке генератора, их последующее изменение не изменит поведение генератора.

21.11.2012

2

Мы не влияем на генерацию кода для содержимого миграций (генерация кода выполняется Microsoft). Мы генерируем DDL на основе кода миграции. Имя схемы "dbo", указанное в коде, будет игнорироваться при создании DDL.

22.11.2012
  • Спасибо за информацию. Тем временем я заработал, обновив DotConnect до версии 7.2.122. 26.11.2012

  • 3

    Я решил проблему, обновив DotConnect до новой версии 7.2.122. Теперь таблица __Migrations создается без dbo перед ней, поэтому оператор вставки работает.

    26.11.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..