Мне всегда казалось, что я понимаю, как это работает ... но в последнее время я действительно начал использовать интерфейсы, и теперь все происходит не так, как я ожидал.
Используя сущностную платформу, у меня есть сервис для каждого объекта, который отвечает за взаимодействие с базой данных и т. Д. В одном моем сервисе я передаю коллекцию объектов моему сервису в виде коллекцииcontactinfo) прежде чем я передам объект, у changetraker есть нужные состояния.однако в моем методе это не так, и все состояния установлены неизмененными.
Private Sub SaveExecute(ByVal param As Object)
Dim srv As Services.ContactInfoService = GetService(Of Services.IContactInfoService)()
If srv.SaveChanges(Me.ContactInfoCollection) Then
GetEvent(Of Events.EditCompletedEvent(Of ICollection(Of Model.ContactInfo))).Publish(Me.ContactInfoCollection)
End If
End Sub
Public Function SaveChanges(ByVal con As ICollection(Of ContactInfo)) As Boolean Implements IContactInfoService.SaveChanges
Using _context As New referee2Entities
For i As Integer = 0 To con.Count - 1
_context.ContactInfoes.Attach(con(i))
Next
_context.DetectChanges()
If _context.SaveChanges() > 0 Then
Return True
EnableNavigation()
End If
Return False
End Using
' Return Save()
End Function
Как я уже говорил выше, Me.contacInfoCollection имеет правильные состояния отслеживания изменений.Но как только он передается srv.savechanges, он возвращается к неизмененному.Я уверен, что это что-то глупое, что я скучаю ... все это EF может сбить меня с толку ...