【问题标题】:Update Database: No DbContext was found in assembly更新数据库:在程序集中找不到 DbContext
【发布时间】:2019-11-03 01:25:28
【问题描述】:

我正在尝试使用代码优先方法在我的 sql 数据库中创建我的表,并且我得到了 “在程序集 'LibrarySystem' 中找不到 DbContext。确保您使用的是正确的程序集,并且该类型既不是抽象的也不是泛型的。”包管理器控制台中的错误

我尝试了几种不同的解决方案,例如Migration: No DbContext was found in assembly中显示的一种

这是我使用 dbcontext 的 Context 类

using System.Collections.Generic;
using System.Text;
using IDataInterface;
using Microsoft.EntityFrameworkCore;

namespace DataAccess
{
    public class LibraryContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("Server = localhost; Database = Library; Trusted_connection = true");
        }
        public DbSet<Book> Books { get; set; }
        public DbSet<Shelf> Shelves { get; set; }
    }
}

【问题讨论】:

  • 您是否在一个解决方案中处理多个项目?
  • 是的,我在我的解决方案中使用了多个项目
  • 当您需要从默认项目定位不同的项目时,请尝试使用 --project your.project.name 参数运行迁移命令,如docs中所述

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


【解决方案1】:

我找到了问题的解决方案。 由于我使用了多个项目 DataInterface、DataAccess、LibrarySystem 和 UnitTests,这就是问题所在。修复它的方法是将默认项目更改为 DataAccess 而不是其他项目之一。我很难看到的问题是我试图从一个没有 DbContext 的默认项目更新数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2011-08-12
    • 2017-04-09
    • 2017-11-12
    • 2017-08-05
    相关资源
    最近更新 更多