【发布时间】:2016-02-02 12:03:22
【问题描述】:
我正在开发一个使用实体框架的项目,当我尝试更新我的数据库时出现以下错误。
在表“VisualManualWebPageFiles”上引入 FOREIGN KEY 约束“FK_dbo.VisualManualWebPageFiles_dbo.VisualManualHeaders_VisualManualHeaderID”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。 无法创建约束。
这里是用于此的类。
首先使用 VisualManualHeader 类。
<Table("VisualManualHeaders")>
Public Class VisualManualHeader
<Key>
Public Property VisualManualHeaderID As Integer
<Required>
Public Property Name As String
Public Overridable Property VisualManualPages As ICollection(Of VisualManualPage)
Public Overridable Property VisualManualWebPageFiles As ICollection(Of VisualManualWebPageFile)
End Class
然后一个 VisualManualHeader 具有与之关联的 VisualManualPages,如下所示。
<Table("VisualManualPages")>
Public Class VisualManualPage
Enum VisualManualPageType
VIDEO
IMAGE
TEXT
WEBPAGE
End Enum
<Key>
Public Property VisualManualPageID As Integer
<Required>
Public Property Title As String
Public Property VisualManualHeaderID As Integer
<ForeignKey("VisualManualHeaderID")>
Public Overridable Property VisualManualHeader As VisualManualHeader
Public Property Content As String
Public Property PageType As VisualManualPageType
Public Overridable Property VisualManualWebPageFiles As ICollection(Of VisualManualWebPageFile)
End Class
然后页面可以有许多与页面关联的 VisualManualWebPageFiles。
<Table("VisualManualWebPageFiles")>
Public Class VisualManualWebPageFile
<Key>
Public Property VisualManualWebPageFileID As Integer
<Required>
Public Property VisualManualHeaderID As Integer
<ForeignKey("VisualManualHeaderID")>
Public Overridable Property VisualManualHeader As VisualManualHeader
<Required>
Public Property VisualManualPageID As Integer
<ForeignKey("VisualManualPageID")>
Public Overridable Property VisualManualPage As VisualManualPage
Public Property FileLocation As String
End Class
由于 VisualManualHeader 的外键,我感觉问题出在 VisualManualWebPageFiles 类中,好像我删除了它,然后我可以更新我的项目。
谢谢。
【问题讨论】:
标签: sql .net vb.net entity-framework entity-framework-6