除了用户之外,我尝试将所有新对象提交到数据库。我是实体框架的新手,我不知道如何解决这个错误。
行_orderDetail.CalenderItems.Add(_newCalendarItem)错误:
无法添加或附加对象,因为其EntityReference的EntityKey属性值与此对象的EntityKey不匹配。
代码:
_db.Orders.AddObject(_order)
For Each n In _namelist
_db.Names.AddObject(n)
Next
For Each n In _namelist
For i As Integer = 1 To _copies
Dim _orderDetail As New OrderDetail
_db.OrderDetails.AddObject(_orderDetail)
_orderDetail.Name = n
_orderDetail.Order = _order
For Each c In _calendarItems
Dim _newCalendarItem As New CalenderItem
_newCalendarItem.Image = c.Image
_newCalendarItem.YearMonth = c.YearMonth
_orderDetail.CalenderItems.Add(_newCalendarItem)
Next
Next
Next
_db.SaveChanges()
我相信我需要添加添加实体引用,但我不确定如何。任何人都可以指出我正确的方向
答案 0 :(得分:1)
正如dnndeveloper所说,你的答案是ObjectContext.CreateObject<T>.
所以你会想要 -
Dim ci = _db.CreateObject(Of CalenderItem)()
ci.OrderDetail = _orderDetail
ci.Image = c.image
ci.YearMonth = c.YearMonth
_orderDetail.CalenderItems.Add(ci)
或类似的东西。我已经遇到过几次这个问题,到目前为止这已经发挥作用了。
HTH
答案 1 :(得分:0)
您应该使用_db.OrderDetails.CalendarItem.New()等来代替创建“new calendaritem”...或者将_newCalendarItem.EntityKey设置为null。