Entity Frameworkにアイデンティティユーザーを含めることができません

asp.net asp.net-identity asp.net-identity-3 entity-framework entity-framework-core

質問

アイデンティティユーザーをクエリ結果に含めるのに問題があります。どんなに多くのレベルであっても、他のエンティティはちゃんと含まれています。

ここに私が使っているモデルがあります。

Building * --- 1 City
     *            *
     |          /
     |         /
     1        1
ApplicationUser

そして文脈:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<City> Cities { get; set; }
    public DbSet<Building> Buildings { get; set; }
}

BuildingCityは、次の特性があります。

public Guid ApplicationUserId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }

私はデータを取得するために使用しているクエリ:

var building = context.Buildings
    .Include(c => c.ApplicationUser)
    .Include(c => c.City)
    .Include(c => c.City.ApplicationUser)
    .First();

その結果、Cityはうまく実装されていますが、ApplicationUserは正しく実装されていません。

これは命名の問題でしょうか?私はすでに、 UserId / UserAspNetUserId / AspNetUserないプロパティ名として試してみました。

私はMigrationsを使ってデータベースを作成しています。ユーザー用に作成されるテーブル名は、AspNetUsersです。

私はエンティティフレームワーク7ベータ7を使用していますが、これが他のバージョンにも当てはまるかどうかはわかりません。

これらは、EF移行によって生成されるファイルです。

ApplicationDbContextModelSnapshot.cs

20150929181902_Init.cs

20150929181902_Init.Designer.cs

(私はアップロードのためにファイルを生成するときにBuilding> Cityリレーションを含むことを忘れていたことに気付きましたが、その例では問題ありません)

受け入れられた回答

私はついにそれを理解した。

ApplicationUserIdentityUser<string>から継承したIdentityUserを継承しIdentityUser<string> 。ジェネリック型は主キーとして使用されるので、 string

私はGuid外部キーのプロパティをstringに変更しましたが、現在はすべて動作しています。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ