我已经查看了很多问题并尝试了所有可用的解决方案,但它似乎不适用于我的特定场景。我正在尝试为以下类添加代码优先的多对多关系并收到以下错误:
在表“AgentPoolAgents”上引入 FOREIGN KEY 约束“FK_dbo.AgentPoolAgents_dbo.Agents_Agent_Id”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束。请参阅以前的错误。
代理人
public class Agent
{
public virtual int Id { get; set; }
public virtual string AgentName { get; set; }
public virtual int UserId { get; set; }
public virtual bool Available { get; set; }
public virtual DateTime CreatedTime { get; set; }
public virtual ICollection<AgentPool> AgentPools { get; set; }
public Agent()
{
}
}
代理池
public class AgentPool
{
public virtual int Id { get; set; }
[Required]
[Display(Name = "Agent pool name")]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)]
public virtual string PoolName { get; set; }
public virtual int UserId { get; set; }
public virtual DateTime CreatedTime { get; set; }
public virtual DateTime ModifiedTime { get; set; }
public virtual ICollection<Agent> Agents { get; set; }
public AgentPool()
{
}
}
UserId 是 UserProfile 类的外键,用于标识代理和代理池的所有者。使用 update-database 包管理器控制台命令运行迁移时会出现该错误。
任何帮助深表感谢!