Я следую этой статье о том, как работать с Entity Framework Core и Sqlite. Мои объекты названы по-разному и имеют разные свойства, но это единственное изменение, которое я внес в код, приведенный в статье.
Я использовал миграции для создания базы данных и таблицы в ней. Я открыл базу данных с помощью SQLiteStudio и вижу, что там создается таблица «Задачи» с соответствующими столбцами.
Однако при попытке сохранить новый объект «Задача» появляется ошибка «Нет такой таблицы: Задачи». в нем.
Вот мой код:
Model.cs
public class TaskContext : DbContext
{
public DbSet<Task> Tasks { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite("Data Source = TestDatabase.db");
}
Task.cs
public class Task
{
public int TaskId { get; set; }
public string TaskName { get; set; }
public DateTime LastExecutionDateTime { get; set; }
public TimeSpan ExecutionInterval { get; set; }
}
Program.cs
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Start.");
using (var db = new TaskContext())
{
Console.WriteLine("Saving new task...");
db.Add(new Task { TaskId=1, TaskName = "test", ExecutionInterval = new TimeSpan(0, 0, 10), LastExecutionDateTime = DateTime.Now });
db.SaveChanges();
}
Console.WriteLine("End.");
}
}
Как и в статье, я включил пакеты Nuget Microsoft.EntityFrameworkCore.Design
и Microsoft.EntityFrameworkCore.Sqlite
, включил миграцию и выполнил начальную миграцию (так создавалась база данных). У меня есть папка «Миграции» и таблица «__EFMigrationsHistory» в базе данных.
Так что я не могу понять, почему она выдаст такую ошибку вместо добавления новой записи в таблицу.