Что вызывает это «нет такого исключения таблицы»? - PullRequest
0 голосов
/ 31 мая 2018

Я создал проект консольного приложения ядра .net следующим образом.Я думаю, что несколько месяцев назад это можно было выполнить без ошибок, но теперь оно больше не работает со следующей ошибкой.

enter image description here

Код

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0" />
  </ItemGroup>

</Project>


using Microsoft.EntityFrameworkCore;
using System;

namespace ConsoleApp4
{
    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    class SchoolContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Data Source=MyDatabase.db");
        }
        public DbSet<Student> Students { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            using (SchoolContext _schoolContext = new SchoolContext())
            {
                Student student = new Student() { Name = "Billy" };


                _schoolContext.Students.Add(student);


                int result = _schoolContext.SaveChanges();

                Console.WriteLine($"There is(are) {result} student(s) added.");
            }
        }
    }
}

Вопрос

Что вызывает эту ошибку и как ее устранить?

Редактировать

Для справки, база данных и таблица существуют следующим образом.

enter image description here

Я работаю в Visual Studio 2017 15.8.0 Preview 1.1.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Потратив несколько часов, я нашел решение.В отличие от MyDatabase.db, сгенерированного миграцией в корне проекта, MyDatabase.db, сгенерированного по умолчанию в $OutDir, не имеет таблицы Students.

Чтобы решить эту проблему, я должен применить следующую конфигурацию в корнеMyDatabase.db.

enter image description here

Возможно, эта проблема вызвана предварительным просмотром VS 2017.

0 голосов
/ 31 мая 2018

Ошибка означает, что таблица не существует в базе данных, к которой вы подключены.

...