[英]Foreign key constraint exception in basic table design
我使用的是Entity Framework Core,並且具有簡單的5表設計,但是出現錯誤,無法弄清原因。 我想念什么?
例外:
在表'GraphicItems'上引入FOREIGN KEY約束'FK_GraphicItems_GraphicUploadTemplateItems_GraphicUploadTemplateItemId'可能會導致循環或多個級聯路徑。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY約束。
基礎:
public abstract class Base
{
public int Id { get; set; }
public DateTime DateCreated { get; set; } = DateTime.Now;
}
客戶:
public class Client : Base
{
public Guid Key { get; set; }
public string Name { get; set; }
}
圖形:
public class Graphic : Base
{
public int ClientId { get; set; }
public virtual Client Client { get; set; }
public ICollection<GraphicItem> Items { get; set; } = new HashSet<GraphicItem>();
public ICollection<Tag> Tags { get; set; } = new HashSet<Tag>();
}
GraphicItem :( 屬性 GraphicUploadTemplateId 導致異常)
public class GraphicItem : Base
{
public int GraphicId { get; set; }
public virtual Graphic Graphic { get; set; }
public int GraphicUploadTemplateItemId { get; set; }
public virtual GraphicUploadTemplateItem UploadTemplateItem { get; set; }
}
GraphicUploadTemplate:
public class GraphicUploadTemplate : Base
{
public int ClientId { get; set; }
public virtual Client client { get; set; }
public ICollection<GraphicUploadTemplateItem> Items { get; set; }
}
GraphicUploadTemplateItem:
public class GraphicUploadTemplateItem : Base
{
public int GraphicUploadTemplateId { get; set; }
public virtual GraphicUploadTemplate UploadTemplate { get; set; }
}
我已經通過GraphicItem.UploadTemplateItem.Id鏈接到相應的GraphicUploadTemplateItem,我認為這會引起循環引用。
通過將屬性類型設置為可為空來解決此問題
public class GraphicItem : Base
{
public int GraphicId { get; set; }
public virtual Graphic Graphic { get; set; }
public int? GraphicUploadTemplateItemId { get; set; }
public virtual GraphicUploadTemplateItem UploadTemplate { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.