2017-10-24 7 views
1

PMCを使用してプロジェクトを作成し、いくつかの移行を追加してデータベースを更新できました。Visual Studio 2017 PMCアドインの移行が機能しない、エラーが発生しない

今日;しかし、私はマイグレーションを全く追加できないようです。ここで

は何が起こるかです:

PM> add-migration EventEntities 
Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0] 
     User profile is available. Using 'C:\Users\MyUserAccount\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. 
PM> 

お知らせを、エラーはありません。 「ユーザープロファイルは利用可能です...」と書かれ、約30秒間ぶら下がっても何も起こらず、マイグレーションは作成されませんでした...

追加マイグレーションが突然動作を停止するのはなぜですか?どのようにエラーメッセージが表示されるのですか?含む

私が試してみましたいくつかのソリューション、:

  • $error[0].Exception.StackTraceが、それは何も出力しません。
  • update-package -reinstallすべてのパッケージを再インストールしようとしましたが、上記の問題に影響はありませんでした。
  • 管理者としてVisual Studio 2017を実行していても、上記の問題に影響はありませんでした。

更新:

System.InvalidOperationException: The convention invocations have reached the recursion limit. This is likely an issue in EF Core, please report it. 

それは次のようになります。私のStartup.csファイルおよびPMCアドオン移行コマンドを再実行するにはいくつかのコードをコメントアウトした後、私は次のエラーを受け取るようになったこれは、関連エンティティと外部キーに関する新しいエンティティの設定方法に起因する問題です。私は特定の問題を見つけることができるかどうかを確認するために、後ろ向きに作業します。

+0

関連するバグを追跡しています。https://github.com/aspnet/EntityFrameworkCore/issues/9506 –

+0

https://github.com/aspnet/EntityFrameworkCore/issues/9265が見つかりました。私が経験していたものにもっと近づきます。ご意見ありがとうございます! – user1477388

答えて

0

問題が関連するエンティティ関係によって発生していると判断しました。

public class Event 
{ 
    public Guid Id { get; set; } 
    public string Name { get; set; } 

    [ForeignKey("EventId")] 
    public virtual ICollection<EventHostAssociation> Hosts { get; set; } 
} 

public class EventHostAssociation 
{ 
    public Guid EventId { get; set; } 
    public string UserId { get; set; } 

    public virtual Event Event { get; set; } 
    public virtual ApplicationUser User { get; set; } 
} 

public class ApplicationUser : IdentityUser 
{ 
    [ForeignKey("UserId")] 
    public virtual ICollection<EventHostAssociation> EventHosts { get; set; } 
} 

そして、最後に、私のApplicationDbContext.csファイルで、私は複合キーを指定:私のソリューションはそうのような外部キーを指定することでした

protected override void OnModelCreating(ModelBuilder builder) 
    { 
     base.OnModelCreating(builder); 

     builder.Entity<EventHostAssociation>().HasKey(c => new { c.EventId, c.UserId }); 
    } 

問題は、ここで議論されている、また、 :https://github.com/aspnet/EntityFrameworkCore/issues/9265

関連する問題