您好我有以下实体:
public class EntityOne
{
public int EntityOneID { get; set; }
public string Smth { get; set; }
public string User1Id { get; set; }
public string User2Id { get; set; }
public virtual ApplicationUser User1 { get; set; }
public virtual ApplicationUser User2 { get; set; }
}
public class ApplicationUser : IdentityUser
{
public virtual ICollection<EntityOne> EntityOnes { get; set; }
}
我配置了关系
modelBuilder.Entity<EntityOne>()
.HasRequired<ApplicationUser>(s => s.User1)
.WithMany(s => s.EntityOnes)
.HasForeignKey(s => s.User1Id).WillCascadeOnDelete(false);
modelBuilder.Entity<EntityOne>()
.HasRequired<ApplicationUser>(s => s.User2)
.WithMany(s => s.EntityOnes)
.HasForeignKey(s => s.User2Id).WillCascadeOnDelete(false);
当我从我的实体中删除ApplcationUser之一时,一切正常,但如果我有2个应用程序用户,则会出现以下错误:
Schema specified is not valid. Errors: The relationship 'SomeProject.Models.EntityOne_User1' was not loaded because the type 'SomeProject.Models.ApplicationUser' is not available.
我希望2个不同的用户与&#34; EntityOne&#34;
有关系编辑:可以回答:
public class ApplicationUser : IdentityUser
{
public virtual ICollection<EntityOne> EntityOnes1 { get; set; }
public virtual ICollection<EntityOne> EntityOnes2 { get; set; }
}
当我在ApplicationUser中创建2个集合时,一切正常。
答案 0 :(得分:0)
您不能拥有与同一财产相关联的两种不同关系。
导航属性提供了一种导航两种实体类型之间关联的方法。每个对象都可以为其参与的每个关系都有一个导航属性。