Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка ядра asp.net и ядра EF при добавлении миграции

Автор вопроса: shazia perweenОтветов: 1

В основном приложении asp.net я пытаюсь выполнить миграцию для кулака кода EF.

Я получил ошибки ниже,

Произошла ошибка при вызове метода "ConfigureServices" в классе запуска "WebAppHandOn.Startup". Рассмотрите возможность использования IDbContextFactory для переопределения инициализации DbContext во время разработки. Ошибка: не удалось загрузить файл или сборку "Microsoft.AspNetCore.Routing, версия = 1.0.1.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60" или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

В "ApplicationDbContext" не найден конструктор без параметров. Либо добавьте конструктор без параметров в "ApplicationDbContext", либо добавьте реализацию "IDbContextFactory" в ту же сборку, что и "ApplicationDbContext".

Вот разные файлы кода,

  1. Стартовый класс

    public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddMvc();
    
        // Add EntityFramework's Identity support.
        services.AddEntityFramework();
    
        // Add ApplicationDbContext.
        services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
    }
    
  2. ApplicationDBContext Класс

    public class ApplicationDbContext : DbContext {
        #region Constructor
    
        public ApplicationDbContext(DbContextOptions options) : base(options)
        {
        }
        #endregion Constructor
    
        #region Methods
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
        }
        #endregion Methods
    
        #region Properties
        public DbSet<Item> Items { get; set; }
        public DbSet<Comment> Comments { get; set; }
        public DbSet<ApplicationUser> Users { get; set; }
        #endregion Properties
    }
    
  3. Класс Project.json

 {
      "dependencies": {
     "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Routing": "1.0.0",
    "Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Newtonsoft.Json": "9.0.1",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.EntityFrameworkCore": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final",
    "TinyMapper": "2.0.8"
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
  },

  • Возможно, где-то вы вызываете new ApplicationDbContext(); Потому что только на первый взгляд кажется, что все выглядит правильно. Woot 30.12.2016
  • Нашел это docs.microsoft.com/en-us/ef/ core/miscellaneous/cli/dotnet 2/3 у них есть решение этой проблемы Woot 30.12.2016

entity-framework-core

Ответы

Ответ 1 · uche Godfrey

Проверьте файл yourproject.csproj, удалите все предварительные версии в любом теге PackageReference и переустановите стабильную версию с управлением пакетами NuGet. надеюсь, это поможет

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы