SQLite CreateDatabase не поддерживается ошибка - PullRequest
3 голосов
/ 14 декабря 2011

Я использую Entity Framework 4.2 CF с SQLite, но когда я пытаюсь запустить приложение, я получаю ошибку «CreateDatabase не поддерживается поставщиком». Это моя модель сопоставления:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            #region NewsMapping

            modelBuilder.Entity<News>().ToTable("news");
            modelBuilder.Entity<News>().HasKey(x => x.Id).Property(x => x.Id).HasColumnName("ID").HasColumnOrder(0);
            modelBuilder.Entity<News>().Property(x => x.Status).HasColumnName("STATUS");
            modelBuilder.Entity<News>().Property(x => x.NewsTitle).HasColumnName("NEWS_TITLE");
            modelBuilder.Entity<News>().Property(x => x.Content).HasColumnName("CONTENT_1");
            modelBuilder.Entity<News>().Property(x => x.IsImportant).HasColumnName("IS_IMPORTANT");
            modelBuilder.Entity<News>().Property(x => x.OrderNumber).HasColumnName("ORDER_NUMBER");
            modelBuilder.Entity<News>().Property(x => x.CreateDate).HasColumnName("CREATE_DATE");
            #endregion

            base.OnModelCreating(modelBuilder);

        }

Что не так в этом коде?

Спасибо

Ответы [ 4 ]

8 голосов
/ 14 декабря 2011

В коде нет ничего плохого. Ошибка говорит именно то, что происходит. Ваш поставщик EF для SQLite (System.Data.SQLite) не обеспечивает создание базы данных , поэтому перед запуском приложения вы должны создать базу данных и все таблицы вручную.

4 голосов
/ 15 декабря 2011

Хорошо, я нашел решение, поставщик не поддерживает «Создание базы данных», поэтому мне пришлось инициализировать его пустым:

public EkosContext()
        {
            Database.SetInitializer<EkosContext>(null);
        } 
3 голосов
/ 02 декабря 2016

Я получил эту ошибку для EF 6.1.3 и System.Data.Sqlite 1.0.103, поскольку в моем файле web.config не указано правильное расположение файла базы данных.

Чтобы устранить проблему, я переместил файл базы данных на App_Data и изменил строку подключения на connectionString="data source=|DataDirectory|databaseName;Version=3;"

0 голосов
/ 03 февраля 2017

Как было из-за неправильного пути моего sqlitedb для меня в web.config, так же просто и глупо, что раздражает.

...