Мне всегда казалось, что я понял, как это работает ... но в последнее время я начал действительно использовать интерфейсы, и теперь все не так, как я ожидаю.Передача объектов методам
с использованием сущности framework, у меня есть служба для каждого объекта, который отвечает за взаимодействие с базой данных и т. Д. ... на моей одной службе. Я передаю коллекцию объектов моей службе как icollection (of contactinfo) перед тем, как я передаю объект, чей-чартер имеет правильные состояния. однако в моем методе это не так, и все состояния настроены на немодифицированные.
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 имеет правильные состояния changetracking. Но как только он перешел к srv.savechanges, он возвращается к неизмененному. Я уверен, что его что-то глупое мне не хватает ... вся вещь EF может меня смущать ...