在我的 ASP.NET Core 1.0、MVC6、EF7 Web 应用程序中,我添加了一个迁移,该迁移添加了一个新的相关表(和相应的模型)。我有以下模型快照:
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
modelBuilder
.HasAnnotation("ProductVersion", "7.0.0-rc1-16348")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("Salesboost.Models.ApplicationUser", b =>
{
b.Property<string>("Id");
b.Property<int?>("TeamId");
b.HasKey("Id");
// -- <unrelated fields snipped> --
});
// -- <snipped> --
modelBuilder.Entity("Team", b =>
{
b.Property<int>("Id").ValueGeneratedOnAdd();
b.Property<string>("Name").IsRequired();
b.Property<string>("ManagerId").IsRequired();
b.HasKey("Id");
});
modelBuilder.Entity("Team", b =>
{
b.HasOne("ApplicationUser", "Manager")
.WithOne("TeamManaging")
.HasForeignKey("ManagerId");
});
}
}
团队.cs:
public class Team
{
public int Id { get; set; }
public string Name { get; set; }
public string ManagerId { get; set; }
public virtual ApplicationUser Manager { get; set; }
public virtual ICollection<ApplicationUser> Members { get; set; }
}
应用用户:
public class ApplicationUser : Microsoft.AspNet.Identity.EntityFramework.IdentityUser
{
public int? TeamId { get; set; }
public virtual Team Team { get; set; }
public virtual Team TeamManaging { get; set; }
}
当我尝试更新数据库时,dnx 给了我以下错误:
导航属性“经理”不能添加到实体类型“团队”,因为实体类型是在影子状态中定义的,并且导航属性不能添加到影子状态。
实体类型处于“影子状态”意味着什么?有没有解决的办法?