Ho un problema davvero fastidioso in cui ogni volta che provo ad aggiungere una migrazione al mio progetto, dotnet si arresta in modo anomalo e la migrazione non viene creata. Ciò accade indipendentemente dal fatto che io usi dotnet ef migrations add
o Add-Migration
. Il comando inizia a funzionare e la compilazione si verifica se necessario, quindi si arresta in modo anomalo con StackOverflowException. Debug produce le seguenti informazioni:"dotnet ha smesso di funzionare" StackOverflowException quando si aggiunge la migrazione del database
Unhandled exception at 0x00007FFF798C97DE (coreclr.dll) in dotnet.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x000000AC03A75FF8).
Inoltre non importa se il mio contesto ha una Dbset i cui oggetti hanno una proprietà int o tutti gli oggetti con le loro proprietà e le collezioni complesse, eccetera. L'unico caso in cui posso generare una migrazione e un'istantanea è se il mio contesto non ha DbSet.
Ho provato sia la versione preliminare e versione di rilascio di .NET Core, sia la completa disinstallazione di .NET Core SDK (poiché erano ancora installate vecchie versioni) e Visual Studio e reinstallandole.
Sto usando Visual Studio Enterprise 2.015,3 su Windows 10 Pro e la mia classe del modello è qui sotto:
public class Player
{
[Key]
public int PlayerID { get; set; }
}
e il mio contesto è la seguente:
public class LeagueContext : DbContext
{
public LeagueContext(DbContextOptions<LeagueContext> context) : base(context)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
public virtual DbSet<Player> Players { get; set; }
}
e la mia configurazione del servizio:
services.AddEntityFrameworkSqlServer().AddDbContext<LeagueContext>(config =>
{
config.UseSqlServer(Configuration["ConnectionStrings:LeagueContext"]);
});
My project.json, come richiesto:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "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.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.EntityFrameworkCore": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final"
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
Può inviare project.json e sperare che ogni riferimento sia corretto. – Anuraj
@Anuraj L'ho aggiunto al post. – Ceshion
Strano. Funziona senza problemi nel mio sistema. Sto usando l'app Web ASP.NET generata da Yoman. Cambiare solo Sto usando una stringa di connessione hard coded che leggere da config. Spero tu stia usando la versione 1.0.0-preview2-003121 di dotnet.exe. – Anuraj