Ich bin in meiner ASP.Net MVC-Anwendung EF6 verwenden. Für eine bestimmte Tabelle funktioniert meine Ansicht, Code aktualisieren und löschen, aber meine Einfügung löst eine DbUpdateException
.Entity Framework 6 - Erstellen von Datensatz mit Autowert ID wirft DbUpdateException
System.Data.Entity.Infrastructure.DbUpdateException wurde nicht behandelt durch Benutzercode
HResult = -2146233087
Message = Es kann keine gültige Reihenfolge für abhängige Operationen bestimmen. Abhängigkeiten können aufgrund von Fremdschlüsseleinschränkungen, Modellanforderungen oder vom Speicher generierten Werten bestehen.
Source = EntityFramework
Stacktrace:
bei System.Data.Entity.Internal.InternalContext.SaveChanges() bei SupportDiary.Models.SchedulerRequestService.Insert (WRequestViewModel Anfrage) in C: \ Projects \ SupportDiary \ SupportDiary \ Models \ SchedulerRequestService.vb: Zeile 92 bei SupportDiary.Hubs.WRequestHub.Create (Anforderung WRequestViewModel) in C: \ Projekte \ SupportDiary \ SupportDiary \ Hubs \ WRequestHub.vb: Zeile 37 bei Lambda_method (Closure, IHub, Object []) bei Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Incoming (IHubIncomingInvokerContext context) Innerexception: HResult = -2146233087 M esessage = Es konnte keine gültige Reihenfolge für abhängige Operationen ermittelt werden. Abhängigkeiten können aufgrund von Fremdschlüsseleinschränkungen, Modellanforderungen oder vom Speicher generierten Werten bestehen. Source = EntityFramework Stacktrace: bei System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.DependencyOrderingError (IEnumerable1 remainder) at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.ProduceCommands() at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func
1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) bei System.Data.Entity.Core .Objects.ObjectContext.SaveChangesToStore (Saveoptions Optionen, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction) bei System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute [TResult] (Func`1 Betrieb) bei System.Data.Entity.Core.Objects. ObjectContext.SaveChangesInternal (Saveoptions Optionen, Boolean executeInExistingTransaction) bei System.Data.Entity.Internal.InternalContext.SaveChanges() InnerException:
Dies ist der Code für Einfügen und Aktualisieren ... wie gesagt Update funktioniert.
Public Overridable Function Insert(request As WRequestViewModel) As WRequestViewModel
Dim entity As New tWorkRequest()
entity.Start = request.Start
entity.[End] = request.[End]
entity.Title = request.Title
entity.Diary = request.Diary
entity.Team = request.Team
entity.WorkManagerID = request.WorkManagerID
entity.AssigneeID = request.AssigneeID
entity.ChangeRef = request.ChangeRef
entity.Description = request.Description
entity.ImpactedServers = request.ImpactedServers
entity.ImpactedServices = request.ImpactedServices
entity.IsBAU = request.IsBAU
entity.ProjectRef = request.ProjectRef
entity.Notes = request.Notes
entity.IsOOH = request.IsOOH
entity.IsAllDay = request.IsAllDay
entity.RecurrenceRule = request.RecurrenceRule
entity.RecurrenceID = request.RecurrenceID
entity.RecurrenceException = request.RecurrenceException
entity.StartTimezone = request.StartTimezone
entity.EndTimezone = request.EndTimezone
entity.RequestStatus = request.RequestStatus
Using de As New SupportDiaryEntities
de.tWorkRequests.Add(entity)
de.SaveChanges()
request.WRequestID = entity.WRequestID
Return request
End Using
End Function
Public Overridable Sub Update(request As WRequestViewModel)
Using de As New SupportDiaryEntities
Dim entity = de.tWorkRequests.FirstOrDefault(Function(r) r.WRequestID = request.WRequestID)
entity.Start = request.Start
entity.[End] = request.[End]
entity.Title = request.Title
entity.Diary = request.Diary
entity.Team = request.Team
entity.WorkManagerID = request.WorkManagerID
entity.AssigneeID = request.AssigneeID
entity.ChangeRef = request.ChangeRef
entity.Description = request.Description
entity.ImpactedServers = request.ImpactedServers
entity.ImpactedServices = request.ImpactedServices
entity.IsBAU = request.IsBAU
entity.ProjectRef = request.ProjectRef
entity.Notes = request.Notes
entity.IsOOH = request.IsOOH
entity.IsAllDay = request.IsAllDay
entity.RecurrenceRule = request.RecurrenceRule
entity.RecurrenceID = request.RecurrenceID
entity.RecurrenceException = request.RecurrenceException
entity.StartTimezone = request.StartTimezone
entity.EndTimezone = request.EndTimezone
entity.RequestStatus = request.RequestStatus
de.SaveChanges()
End Using
End Sub
Wenn ich es als Autowert-ID-Feld (WRequestId) im Insert-Code in Einheit bohren auf 0 gesetzt
Ich bin mir nicht sicher, wie dieses Problem zu beheben ... sucht on-line geben Details über einen Fehler bezüglich DatabaseGeneratedOption.Identity, aber es sieht so aus, als wäre es ein Fehler in EF4. Aber ich habe meine edmx-Datei überprüft und dieser Parameter ist für alle meine ID-Felder für jede Tabelle korrekt eingestellt.
Dies ist die EF automatisch generierte Datei für die Tabelle in Frage ...
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated from a template.
'
' Manual changes to this file may cause unexpected behavior in your application.
' Manual changes to this file will be overwritten if the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Imports System
Imports System.Collections.Generic
Partial Public Class tWorkRequest
Public Property WRequestID As Integer
Public Property Title As String
Public Property Start As Date
Public Property [End] As Date
Public Property Diary As String
Public Property Team As String
Public Property WorkManagerID As Integer
Public Property AssigneeID As Integer
Public Property ChangeRef As String
Public Property Description As String
Public Property ImpactedServers As String
Public Property ImpactedServices As String
Public Property IsBAU As Boolean
Public Property ProjectRef As String
Public Property Notes As String
Public Property IsOOH As Boolean
Public Property IsAllDay As Boolean
Public Property RecurrenceRule As String
Public Property RecurrenceID As Nullable(Of Integer)
Public Property RecurrenceException As String
Public Property StartTimezone As String
Public Property EndTimezone As String
Public Property RequestStatus As Integer
Public Overridable Property tWorkRequests1 As ICollection(Of tWorkRequest) = New HashSet(Of tWorkRequest)
Public Overridable Property tWorkRequest1 As tWorkRequest
End Class
Irgendwelche Vorschläge anyone?
Schauen Sie sich diese Lösung an http://stackoverflow.com/questions/14153208/unable-to-deterine-a-valid-ordering-forde-dependens – ssanga