除了用户之外,我主要尝试将所有新对象提交到数据库中。我是实体框架的新手,我不知道如何对付这个错误。
在线_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()我认为我需要添加一个实体引用,但我不确定如何添加。有人能指出我的正确方向吗?
发布于 2011-08-27 15:29:52
正如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
发布于 2010-11-17 02:26:45
与其创建“新的日历项”,不如使用_db.OrderDetails.CalendarItem.New()等.或者将_newCalendarItem.EntityKey设置为null。
https://stackoverflow.com/questions/4195476
复制相似问题