j'ai installé un LINQ to SQL DataContext pour refléter un ensemble de base des relations:entité enfant Populate lors de la création de nouveaux parents dans LINQ to SQL
Un rendez-vous a un client, un employé et de nombreux AppointmentServices. Chaque AppointmentService a une définition de service. Chacun est lié à l'autre par une clé primaire et étrangère.
créer un nouveau rendez-vous dans la mémoire, et remplir le clientID employeeID. Je crée un AppService en mémoire et ajoute le AppService à l'ensemble d'entités dans tmpAppointment.AppServices.
tmpAppointment = New Appointment
tmpAppointment.ClientID = 1
tmpAppointment.EmployeeID = 2
tmpAppService = New AppService
tmpAppService.ServiceDefinitionID = 123
tmpAppointment.AppServices.Add(tmpAppService)
Est-il possible de remplir le ServiceDefinition de chaque AppService en mémoire sans insérer soit la nomination ou le service d'application dans leurs bases de données respectives? L'utilisateur peut annuler ce processus et je voulais simplement éviter d'ajouter puis de supprimer de la base de données inutilement.
Je pourrais tout remonter après avoir confirmé que l'utilisateur voulait aller de l'avant en utilisant des contrôles non liés, mais je me demandais si LINQ to SQL fournit une solution plus élégante.
J'ai essayé:
tmpAppointment.AppServices.Load
et
la création d'un new ServiceDefinition
puis peuplant puis l'ajouter à AppServices
et
sélection de la ServiceDefinition correcte de la DB et en l'ajoutant à l'ensemble d'entités AppServices
Le premier ne fait rien et les deux derniers jeter la suivante à partir de l'intérieur de la classe DataContext:
System.InvalidOperationException: « Sequence contient plus d'un élément »
à la ligne généré automatiquement
<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
Merci.
de la carte d'identité appropriée Merci, faisant cependant donc jette l'erreur que j'ai mentionnée. J'ai mis à jour ma question avec plus de détails sur ce front. – George
J'ai résolu mon problème de lancement d'erreur. Une fois cela fait, j'étais autorisé à remplir manuellement l'entité ServiceDefinition. Je vous remercie. LINQ to SQL fonctionne comme vous le souhaitez, mais vos associations doivent être correctement configurées. Une fois que j'ai changé mes relations Parent/Enfant pour être fondamentalement le contraire de ce que j'avais à l'origine (schéma de ref en haut), les choses ont commencé à fonctionner correctement - c'est drôle! – George