Я использую новое ядро asp.net и имею свои классы и контекст db в sep dll. Я добавил код в соответствии с документами.
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddDbContext<solitudeDContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")
,b=>b.MigrationsAssembly("solitudedcore")));
}
Но я все еще получаю следующую ошибку, когда запускаю следующую команду
миграция dotnet ef добавить firstdb
Ваш целевой проект 'solitudeeccore' не соответствует вашей сборке миграции 'solitudedcore'. Либо измените целевой проект, либо измените сборку миграции. Измените сборку миграции с помощью DbContextOptionsBuilder. Например. options.UseSqlServer (соединение, b => b.MigrationsAssembly ("solitudeeccore")). По умолчанию сборка миграции - это сборка, содержащая DbContext. Измените целевой проект на проект миграции, используя раскрывающийся список проектов по умолчанию в консоли диспетчера пакетов или выполнив команду «dotnet ef» из каталога, содержащего проект миграции.
Я изменил раскрывающийся список проекта и добавил b => b.MigrationsAssembly ("solitudedcore"), как указано здесь, на ядрах EF github https://github.com/aspnet/EntityFramework/issues/7869
Я также включил свой проект для вашей справки.
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
И мои файлы настроек приложения, как показано ниже
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Data Source=DESKTOP-JHIMUM4\\SQLEXPRESS2014;Initial Catalog=solitudeec;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
Любые идеи или решения будут оценены.
Здесь вы можете найти макет моего проекта
Изменить 1
Приведенный ниже человек был действительно прав, это написание dll, но вам также нужно нацелить проект, в котором размещается ваша dll, а не сама dll.
Чтобы создать миграцию в командной строке вызовите
миграция dotnet ef добавить firstdb
и чтобы протолкнуть свои изменения, просто позвоните
обновление базы данных dotnet ef -e Производство