造成这种情况的原因是什么?#34;没有这样的表格例外"?

时间:2018-05-31 04:36:59

标签: c# .net-core console-application entity-framework-core

我创建了一个.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 :(得分:3)

浪费了几个小时后,我找到了解决方案。 与项目根目录中的迁移生成的MyDatabase.db不同,MyDatabase.db中默认生成的$OutDir没有Students表。

要解决此问题,我必须在根MyDatabase.db上应用以下配置。

enter image description here

可能这个问题是由VS 2017 Preview引起的。

答案 1 :(得分:0)

错误表示您所连接的数据库中不存在该表。