Iam使用Sql 2008 r2和visual studio 2010和EF 4.4。而且,我得到這個錯誤運行代碼更長時間了。該守則應解釋數據庫關係。模型生成過程中檢測到修復使用數據註解在模型生成期間檢測到一個或多個驗證錯誤
一個或多個驗證錯誤: \ tSystem.Data.Entity.Edm.EdmAssociationConstraint:在>從屬和主角色的屬性有關係約束的數目必須是相同的。
我想用dataannotation來解決這個問題。我在做什麼?
'發售
Public Class Offer
<Key(), DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property Offer_ID As Integer
Public Property Name As String
End Class
' 頭
Public Class Head
<Key(), Column(Order:=0), DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property Head_ID As Integer
<ForeignKey("Offer_ID")>
Public Property Offer As Offer
<Key(), Column(Order:=1)>
Public Property Offer_ID As Integer
Public Property Name As String
End Class
'線
Public Class Line
<Key(), Column(Order:=0), DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property Line_ID As Integer
<ForeignKey("Head_ID")>
Public Property Head As Head
<Key(), Column(Order:=1)>
Public Property Head_ID As Integer
<ForeignKey("Offer_ID")>
Public Property Offer As Offer
<Key(), Column(Order:=2)>
Public Property Offer_ID As Integer
Public Property Name As String
End Class
' 的DbContext
Public Class DatabaseContext
Inherits DbContext
Public Sub New(p_ConnectionString As String)
MyBase.New(p_ConnectionString)
End Sub
Public Property Offers As DbSet(Of Offer)
Public Property Heads As DbSet(Of Head)
Public Property Lines As DbSet(Of Line)
End Class
「創建一個簡單的例子
Private Shared Sub CreateME()
Dim offer As New Offer
offer.Name = "Offer1"
offer.Offer_ID = 1
Dim head As New Head
head.Head_ID = 1
head.Name = "head1"
head.Offer = offer
head.Offer_ID = offer.Offer_ID
Dim line As New Line
line.Head = head
line.Head_ID = head.Head_ID
line.Line_Id = 1
line.Name = "line1"
line.Offer = offer
line.Offer_ID = offer.Offer_ID
Using context = New DatabaseContext(GetConnectionString())
context.Offers.Add(offer)
context.Heads.Add(head)
context.Lines.Add(line)
context.SaveChanges()
End Using
End Sub
因此問題是我可以解決這個使用數據註解?
我一定要使用模型構建器在這裏解釋: How to fix: The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical?
非常感謝,即使有圖片也能給出很好的答案。我現在沒有在一個註釋中可以有兩個外鍵。有一些更復雜的數據庫示例使用數據註釋,一個網頁 - 我認爲你也可以這樣做: 公共屬性頭部爲頭部 Public Property Head_ID As Integer Public Property Offer_ID As Integer –
fedda
2013-02-21 08:47:11