J'essaie d'insérer plusieurs éléments nouvellement créés dans la base de données. J'ai une classe générée LINQ2SQL appelée "Order".LINQ to SQL - Insert produisant un comportement étrange
Dans l'ordre, il existe une propriété appelée "OrderItems" qui est également générée par LINQ2SQL et représente les éléments de cet ordre.
Jusqu'ici tout va bien. Le problème que j'ai en ce moment, c'est lorsque j'essaie d'ajouter plus d'un OrderItem nouvellement créé dans Order.
i.e.:
Order o = orderWorker.GetById(10);
for(int i=0; i < 5; ++i) {
OrderItem oi =new OrderItem {
Order = o,
Price = 100,
ShippingPrice = 100,
ShippingMethod = ...,
Item = someItem
};
o.OrderItems.Add(oi);
}
context.SubmitChanges();
Malheureusement, une seule entité est ajoutée. Oui, j'ai vérifié le SQL généré en ajoutant Context.Log = Console.Out, et oui, une seule instruction a été créée.
Des indices? Par ailleurs, je sais que je ne suis pas en utilisant InsertOnSubmit, la documentation dit:
Vous pouvez demander explicitement les insertions à l'aide InsertOnSubmit. Alternativement, LINQ to SQL peut déduire Inserts par trouver des objets connectés à l'un des les objets connus qui doivent être mis à jour. Par exemple, si vous ajoutez un objet Untracked à un EntitySet (TEntity) ou définir une EntityRef (TEntity) à un objet Untracked, vous faites l'objet Untracked accessible par le biais d'objets suivis dans le graphique. Lors du traitement de SubmitChanges, LINQ to SQL traverse les objets suivis et découvre tous les objets persistants accessibles qui ne sont pas suivis . De tels objets sont candidats pour insertion dans la base de données .
Merci beaucoup pour votre temps.
Merci pour nourrir ce retour - intéressant. –
Cela n'a pas beaucoup de sens ... Pourquoi ne pourrais-je pas insérer 2 nouveaux objets qui ont la même valeur de hachage et qui comparent Equals? –