开发者

how to fix EntityReference error

开发者 https://www.devze.com 2023-01-25 03:24 出处:网络
I\'m attempt to commit mostly all new objects to the database, apart from the user. I\'m new to entity framework and im not sure how to combat this error.

I'm attempt to commit mostly all new objects to the database, apart from the user. I'm new to entity framework and im not sure how to combat this error.

Error on line _orderDetail.CalenderItems.Add(_newCalendarItem):

The object could not be added or attached because its EntityReference has an EntityKey property value that does not match the EntityKey for this object.

Code:

 _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(_ord开发者_如何转开发erDetail)
                _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()

I believe I need to add add an entity reference but I'm not sure how. Can anyone point me in the right direction


As dnndeveloper says, your answer is ObjectContext.CreateObject<T>.

So you're gonna want -

 Dim ci = _db.CreateObject(Of CalenderItem)()
 ci.OrderDetail = _orderDetail
 ci.Image = c.image
 ci.YearMonth = c.YearMonth

 _orderDetail.CalenderItems.Add(ci)

or something along those lines. I've run into this issue a couple of times and this has worked so far.

HTH


Instead of creating a "new calendaritem" you should use _db.OrderDetails.CalendarItem.New() etc... either that or set _newCalendarItem.EntityKey to null.

0

精彩评论

暂无评论...
验证码 换一张
取 消