2017-10-21 102 views
2

我安裝了最新版本的Windows 10(秋季創建者更新)和Visual Studio 2017(15.4)。UWP SQL Server遷移不起作用

我創建了針對主要版本和安裝的NuGet一個UWP應用:

  • microsoft.entityframeworkcore.tools
  • microsoft.entityframeworkcore.sqlserver

這是我的代碼:

[Table("tbProva")] 
public class Prova 
{ 
    public Prova() 
    { 
     Indirizzi = new List<Indirizzo>(); 
    } 

    [Key] 
    public Guid Id { get; set; } 

    [MaxLength(250)] 
    public string Nome { get; set; } 
    public ICollection<Indirizzo> Indirizzi { get; set; } 
} 

public class ProvaConfig : IEntityTypeConfiguration<Prova> 
{ 
    public void Configure(EntityTypeBuilder<Prova> builder) 
    { 
     builder.HasMany(c => c.Indirizzi) 
      .WithOne(c => c.Prova) 
      .HasForeignKey(c => c.IdProva) 
      .OnDelete(DeleteBehavior.Cascade); 
    } 
} 

[Table("tbIndirizzi")] 
public class Indirizzo 
{ 
    [Key] 
    public Guid Id { get; set; } 
    [MaxLength(250)] 
    public string Strada { get; set; } 
    [MaxLength(10)] 
    public string Civico { get; set; } 
    public Prova Prova { get; set; } 
    public Guid IdProva { get; set; } 
} 

public class DcContext : DbContext 
{ 
    public DbSet<Prova> tbProva { get; set; } 
    public DbSet<Indirizzo> tbIndirizzi { get; set; } 

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     optionsBuilder.UseSqlServer("Server=Europa;Database=ProvaDb;Trusted_Connection=True;"); 
    } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.ApplyConfiguration<Prova>(new ProvaConfig()); 
    } 
} 

如果我運行遷移,我得到這個結果:

PM> Add-Migration poi 

System.TypeLoadException:非èstato不可能性caricare IL TIPO 'System.Globalization.CultureInfo' dall'assembly 'System.Runtime,版本= 4.0.0.0,文化=中性公鑰= b03f5f7f11d50a3a'。

如果我從模型中刪除導航屬性,我不覆蓋OnModelCreating,它工作正常。

感謝

+0

請確保始終翻譯錯誤消息。我們並不全都說你的母語:-) – Wndrr

+0

好的。 System.TypeLoadException:無法通過System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a程序集加載'System.Globalization.CultureInfo'類型程序集 – Kraken

回答

0

這應該是一個已知問題,請參閱issue #9666

使用.NET UWP 6.0測試EF Core 2.0時,發現存在類似問題的新類型。例如: System.TypeLoadException:無法從程序集「System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'中加載類型'System.Globalization.CultureInfo'。 System.TypeLoadException:無法從程序集「System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'中加載類型'System.MarshalByRefObject'。

上述例外的一個例子是DataAnnotations。在你的代碼片段中,只引用了System.ComponentModel.DataAnnotations命名空間。

而且這個補丁bug似乎已被批准用於2.0.x補丁。請參閱issue #9827

+0

謝謝你的幫助。 – Kraken

0

確保System.Globalization的NuGet裝箱率是安裝並及時更新。

此外,如果您打算使用EntityFramework,請確保您安裝的microsoft.entityframeworkcore包已安裝。

+0

我安裝了nuget包,並且出現相同的錯誤。我也安裝了microsoft.entityframeworkcore。在你的代碼中,它有效嗎? 謝謝 – Kraken

+0

您可以嘗試刪除項目中的/ bin文件夾,然後單擊「重建解決方案」。如果這不起作用,我不知道: -/ – Wndrr

+0

完成。不要工作。 – Kraken