我已阅读与该主题相关的不同回复,但我不确定如何在我的示例中应用它们。
我有一个可以拥有多个关系的用户。关系是两个用户之间的链接,是一种方式。用户可以拥有多个关注者,可以关注多个用户。
我想强制执行一个关系,以便在数据库中创建两端。 如果我在我的代码第一类中这样做,则无法使用以下错误创建:
在表'RelationshipTests'上引入FOREIGN KEY约束'FK_dbo.RelationshipTests_dbo.UserTests_User_Id'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
这是我的背景。
public class TestDataContext : DbContext
{
public TestDataContext() : base("DefaultConnection") { }
public DbSet<UserTest> Users { get; set; }
public DbSet<RelationshipTest> Relationships { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<RelationshipTest>().HasRequired(x => x.User).WithMany().WillCascadeOnDelete(false);
modelBuilder.Entity<RelationshipTest>().HasRequired(x => x.FollowedBy).WithMany().WillCascadeOnDelete(false);
}
}
public class UserTest
{
public long Id { get; set; }
// User can be following multiple users
[InverseProperty("User")]
public ICollection<RelationshipTest> Following { get; set; }
// User can be followed by multiple users
[InverseProperty("FollowedBy")]
public ICollection<RelationshipTest> Followers { get; set; }
}
public class RelationshipTest
{
public long Id { get; set; }
[Required] // ISSUE HERE - I can have only a single Required used
public UserTest User { get; set; }
[Required] // ISSUE HERE
public UserTest FollowedBy { get; set; }
}
如何在我的关系中实施2要求?
感谢您的帮助