4

我创建了一个 .net 核心控制台应用程序项目,如下所示。我认为几个月前这可以正常运行,但现在它不再适用于以下错误。

在此处输入图像描述

代码

<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.");
            }
        }
    }
}

问题

是什么导致此错误以及如何解决?

编辑

供您参考,数据库和表确实存在如下。

在此处输入图像描述

我正在开发 Visual Studio 2017 15.8.0 Preview 1.1。

4

2 回答 2

8

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

为了解决它,我必须在 root 上应用以下配置MyDatabase.db

在此处输入图像描述

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

于 2018-05-31T12:35:15.600 回答
0

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

于 2018-05-31T04:43:09.197 回答