Ich habe Setup eine LINQ to SQL Datacontext eine Reihe von grundlegenden Beziehungen zu reflektieren:Populate Kind Entität, wenn neue Eltern in LINQ to SQL Erstellen
Ein Termin hat ein Kunde, ein Mitarbeiter und viele AppointmentServices. Jeder AppointmentService hat eine ServiceDefinition. Jeder ist mit dem anderen durch einen Primär- und einen Fremdschlüssel verbunden.
ich einen neuen Termin im Speicher zu erstellen, die clientID und employeeID bevölkert. Ich erstelle einen AppService im Speicher und füge den AppService zu der in tmpAppointment.AppServices festgelegten Entität hinzu.
tmpAppointment = New Appointment
tmpAppointment.ClientID = 1
tmpAppointment.EmployeeID = 2
tmpAppService = New AppService
tmpAppService.ServiceDefinitionID = 123
tmpAppointment.AppServices.Add(tmpAppService)
Ist es möglich, die ServiceDefinition jeden AppService im Speicher zu füllen ohne entweder den Termin oder den App-Dienst in ihre jeweiligen Datenbanken eingefügt? Der Benutzer kann diesen Vorgang abbrechen, und ich wollte einfach vermeiden, dass er unnötigerweise aus der Datenbank löscht.
Ich könnte all dies nach Bestätigung des Benutzers mit ungebundenen Steuerelementen weitermachen wollen, aber ich fragte mich, ob LINQ to SQL eine elegantere Lösung bietet.
I haben versucht:
tmpAppointment.AppServices.Load
und
eine new ServiceDefinition
Schaffung dann Bestücken und Hinzufügen dann AppServices
und
die korrekte ServiceDefinition aus der DB Auswahl und Hinzufügen zu dem AppServices-Entitätsset
Die erste tut nichts, und die beiden letzteren die folgenden aus der Klasse Datacontext Wurf:
System.InvalidOperationException: ‚Sequenz mehr als ein Element enthält‘
an der automatisch generierte Linie
<Global.System.Data.Linq.Mapping.AssociationAttribute _
(Name:="AppService_ServiceDefinition", Storage:="_AppServices", _
ThisKey:="ServiceID", OtherKey:="ServiceDefinitionID", _
IsForeignKey:=true)>
Public Property AppService() As AppService
Get
Return Me._AppServices.Entity
End Get
Set
Dim previousValue As AppService = Me._AppServices.Entity <<<< error thrown
Vielen Dank.
ist die Einstellung und Zuordnung der richtigen ID eingefügt werden Danke, aber tun so wirft den Fehler, den ich erwähnt habe. Ich habe meine Frage mit mehr Details auf dieser Vorderseite aktualisiert. – George
Ich habe mein Fehler werfen Problem gelöst. Sobald ich das getan hatte, durfte ich die Entität ServiceDefinition manuell füllen. Vielen Dank. Für alle anderen, die dieses Problem haben, funktioniert LINQ to SQL so, wie Sie es erwarten, aber Sie müssen Ihre Assoziationen korrekt eingerichtet haben. Sobald ich meine Eltern/Kind-Beziehungen geändert habe, um im Grunde das Gegenteil von dem zu sein, was ich ursprünglich hatte (ref Diagramm an der Spitze), begannen die Dinge richtig zu funktionieren - lustig, dass! – George