【发布时间】:2020-01-24 20:13:30
【问题描述】:
我正在使用 EF Core。我希望我的基类保留对 CreateByUser 和 LastModifiedByUser 的引用。不幸的是,我只能让它与一个外键一起工作。当我尝试添加第二个外键时,出现此错误:
在表“Assignments”上引入 FOREIGN KEY 约束“FK_Assignments_Users_LastModifiedByUserId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。 无法创建约束或索引。请参阅以前的错误。请注意,我可以使用“Add-Migration”而不会出现任何错误,但是一旦我运行“Update-Database”就会出错。
下面是问题和错误的相关代码。
public abstract class DivBase
{
[Key]
public int Id { get; set; }
[Required]
public DateTimeOffset DateCreated { get; set; }
public int CreatedByUserId { get; set; }
[Required]
public DateTimeOffset LastDateModified { get; set; }
public int LastModifiedByUserId { get; set; }
[ForeignKey("CreatedByUserId")]
public DivUser CreatedByUser { get; set; }
[ForeignKey("LastModifiedByUserId")]
public DivUser LastModifiedByUser { get; set; }
}
public class DivUser
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(256)]
public string Name { get; set; }
[Required]
[MaxLength(256)]
public string Email { get; set; }
}
public class DivAssignment : DivBase, IDivEvent
{
public DateTimeOffset StartDate { get; set; }
public DateTimeOffset EndDate { get; set; }
}
public interface IDivEvent
{
[Required]
public DateTimeOffset StartDate { get; set; }
[Required]
public DateTimeOffset EndDate { get; set; }
}
另外,如果我将其中一个属性设为可空,它将编译,但我担心这会在以后引起问题。
【问题讨论】:
标签: c# entity-framework .net-core entity-framework-core