Как сначала настроить базу данных EFcore в отдельной библиотеке классов в приложении ASP.NET Core MVC? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть БД, и я хочу добавить отдельную библиотеку классов для структуры сущностей для доступа к моим данным, но когда я запускаю команду scaffold, она создает модель БД в моем веб-приложении.

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

@ Ответ Ибрагимозгона правильный и помог мне.Однако я столкнулся с несколькими ошибками в классе DbContext на пути, который он не упомянул, как решить:

'EntityTypeBuilder' не содержит определения для 'ToTable' и не имеет доступного метода расширения 'ToTable'Принятие первого аргумента типа 'EntityTypeBuilder' может быть найдено (вам не хватает директивы using или ссылки на сборку?

и

'KeyBuilder' не содержит определения для 'ForSqlServerIsClustered' иневозможно найти доступный метод расширения 'ForSqlServerIsClustered', принимающий первый аргумент типа 'KeyBuilder' (отсутствует директива using или ссылка на сборку?

Чтобы устранить эти ошибки в классе DbContext, откройте консоль диспетчера пакетовснова и выберите проект по умолчанию, который будет библиотекой классов. Введите эти команды одну за другой:

- Install package:  Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4  (or whichever latest version)
- Install package:  Install-Package Microsoft.EntityFrameworkCore.Relational -Version 2.2.4  (or whichever latest version)
- If errors persist try: Install-Package or Update-Package  Microsoft.EntityFrameworkCore.Tools  (or whichever latest version)
0 голосов
/ 13 ноября 2018

Вы должны выбрать Данные проект как проект по умолчанию в консоли диспетчера пакетов.

enter image description here

Будьте осторожны, у вас есть ссылки на ядро ​​в data.csproj

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0-preview3-35497" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.0-preview3-35497" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.0-preview3-35497" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.0-preview3-35497"/>
    <PackageReference Include="System.Data.Common" Version="4.2.1" />
  </ItemGroup>

</Project>

Я понял, что в проектах ClassLibrary есть некоторые ошибки.Вы можете взглянуть на них:

https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#targeting-class-library-projects-is-not-supported

https://github.com/dotnet/cli/issues/8735

https://github.com/aspnet/EntityFrameworkCore/issues/10298

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...