我在查询结果中遇到了包括我的身份用户在内的问题。其他实体也包括在内,无论深度多少。将身份用户与实体框架一起使用不起作用
这是我正在使用的模型。
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();
在th e结果City填充得很好,但ApplicationUser不是。
这是一个命名问题吗?我已经试过UserId
/User
和AspNetUserId
/AspNetUser
作为没有成功的属性名称。
我正在使用Migrations创建数据库。为用户创建的表名是AspNetUsers。
我正在使用实体框架7测试版7,不知道这是否也适用于其他版本。
这些是由EF迁移生成的文件。
ApplicationDbContextModelSnapshot.cs
20150929181902_Init.Designer.cs
(我发现我忘了,包括建筑>生成上传文件时,城市的关系,但是这不应该的问题的例子)
这可能是EF7中的一个错误。你的'OnModelCreating'方法是什么样的? – natemcmaster
这是一个错字吗?包括(c => c.AspNetUser)。他们是否处于相同的背景下?你有一个DbSet的ApplicationUser? –
@SteveGreene这是一个错字,只是清除它。他们在相同的背景下。用户位于DbSet中 - 它是IdentityDbContext中的一个属性。 – SaphuA