我在查询结果中包含我的身份用户时遇到问题。其他实体也很好,不管有多少层深。
这是我正在使用的模型。
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
作为属性名称,但没有成功。
我正在使用迁移来创建数据库。为用户创建的表名是 AspNetUsers。
我正在使用实体框架 7 beta 7,不确定这是否也适用于其他版本。
这些是 EF Migrations 生成的文件。
ApplicationDbContextModelSnapshot.cs
20150929181902_Init.Designer.cs
(我注意到在生成要上传的文件时,我忘记包含 Building > City 关系,但这对于示例来说无关紧要)