J'utilise EF5, première approche de base de données POCO. Disons que je dois créer un nouveau client et un nouvel ordre: -Entity Framework 5 POCOs - créer et gérer des relations
var customer = new Customer();
var order = new Order();
order.Customer = customer;
order.CustomerId = customer.Id;
customer.Orders.Add(order);
Dois-je vraiment inclure ces trois dernières lignes pour mettre en place la relation? La chose à signaler ici est que je crée la hiérarchie d'entité en mémoire, et la manipule pendant potentiellement longtemps jusqu'à ce que l'utilisateur frappe "Enregistrer".
Ce qui m'embrouille, c'est l'idée de créer plusieurs nouveaux objets Client. Chacun se terminera avec un ID de 0 (avant d'être persisté). Il y a plusieurs endroits dans mon code où je fais quelque chose avec la propriété CustomerId d'une commande. S'il y a plusieurs nouveaux clients (ID 0), comment puis-je obtenir le bon? Ou dois-je toujours utiliser Order.Customer
et jamais Order.CustomerId
(dans ce cas, est-il sûr de se débarrasser de l'attribution ID dans le code ci-dessus)?
Dans votre exemple, serais-je capable de traverser Order.Customer * avant que le client soit passé au contexte? Rappelez-vous, je vais manipuler/traverser ces hiérarchies d'entités avant qu'elles ne soient jamais persistées à la base de données. Je ne pensais pas que les entités POCO avaient une logique intégrée pour mettre en place une relation «bidirectionnelle», c'est-à-dire simplement faire 'customer.Orders.Add (order)' ne peuplera pas les commandes '.Customer' et'. Propriétés CustomerId', le sera-t-il? –
@AndrewStephens voir la mise à jour de la réponse.J'ai ajouté une description étape par étape de ce qui se passe. –