2009-04-24 7 views

Répondre

2

La soumission de la base de données ne se produit pas avant que vous n'appelez SubmitChanges. Il n'y a aucun coût tangible associé à plusieurs appels à InsertOnSubmit - alors pourquoi ne pas le faire?

Cela entraînera toujours deux commandes TSQL INSERT - il n'est simplement pas possible d'insérer dans deux tables dans une seule commande INSERT régulière.

+0

"Cela se traduira toujours par" devrait probablement lire "Cela entraînera toujours deux" –

+1

@Joe - merci. Mes doigts stoopides! –

3

Si vos tables ont une clé primaire/relation de clé étrangère à l'autre, alors vous avez aussi deux objets que vous pouvez lier les uns aux autres:

InternetStoreDataContext db = new InternetStoreDataContext(); 

Category c = new Category(); 
c.name = "Accessories"; 
Product p = new Product(); 
p.name = "USB Mouse"; 
c.Products.Add(p); 

//and finally 
db.Categories.Add(c); 
db.SubmitChanges(); 

Cela ajoute votre objet et tous les objets liés lors de la présentation les changements. Notez que pour que cela fonctionne, vous devez avoir une clé primaire dans les deux tables. Sinon LINQ ne vous offre pas la possibilité de liaison.

Voici de bons exemples d'utilisation LINQ to SQL: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

+0

qu'est-ce que db, db est databasecontext obj ou tout autre objet – vineth

Questions connexes