Sqlite - такой таблицы не существует, даже если она существует? - PullRequest
1 голос
/ 02 апреля 2020

Хийя,

В настоящее время мы работаем над проектом, в котором нам нужно локально хранить данные (данные конфигурации, в частности), и полагал, что Sqlite является неплохим решением на данный момент.

Однако после настройки DBContext, Entities и прочего, создания миграции и запуска Update-Database для создания базы данных (и подтверждения с помощью DB Browser for SQLite, что она «правильно» создала ее), мы встречаемся с «Такой таблицей не найдено» ошибка.

DataService.cs

private SettingsModel GetConfig()
    {
        using(var _context = new DataContext())
        {
            var query = (from a in _context.SettingsModel
                         select a);

            var obj = query.FirstOrDefault();
            if (string.IsNullOrWhiteSpace(obj.ExpressionString))
                obj.ExpressionString = DEFAULT_EXPRESSION_STRING;

            return obj;
        }
    }

DbContext.cs

public class DataContext : DbContext
{
    public virtual DbSet<SettingsModel> SettingsModel { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder.UseSqlite("Data source=keyconfig.db");
        }
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<SettingsModel>(entity =>
        {
            entity.HasNoKey();
            entity.Property(e => e.ExpressionString)
                .IsUnicode(false);
        });
    }
}

SettingsModel.cs

public class SettingsModel
{
    public string ExpressionString { get; set; }
}

Я, честно говоря, довольно глуп, почему это не работает (или почему у нас возникла проблема), особенно после подтверждения базы данных и ее таблиц существует , так что любая помощь будет полезна!

...