クエリ結果に Identity User を含めることができません。他のエンティティは、レベルの深さに関係なく、問題なく含まれています。
使用しているモデルはこちら。
Building * --- 1 City
* *
| /
| /
1 1
ApplicationUser
そして文脈:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<City> Cities { get; set; }
public DbSet<Building> Buildings { get; set; }
}
と の両方Building
にCity
次のプロパティがあります。
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
/User
とAspNetUserId
/AspNetUser
をプロパティ名として試しましたが、成功しませんでした。
Migrations を使用してデータベースを作成しています。ユーザー用に作成されるテーブル名は AspNetUsers です。
私はエンティティ フレームワーク 7 ベータ 7 を使用していますが、これが他のバージョンにも当てはまるかどうかはわかりません。
これらは、EF 移行によって生成されたファイルです。
ApplicationDbContextModelSnapshot.cs
20150929181902_Init.Designer.cs
(アップロード用のファイルを生成するときに Building > City リレーションを含めるのを忘れていたことに気付きましたが、この例では問題になりません)