Vous devez utiliser la méthode InsertOnSubmit:
NorthwindDataContext context = new NorthwindDataContext();
context.Products.InsertOnSubmit(new Product(..));
context.SubmitChanges();
La méthode Add existe sur les membres EntitySet, est principalement utilisé lors de l'ajout des entités enfant à un parent d'un, par exemple:
var category = new Category{ Name = "Breveages"};
category.Products.Add(new Product{ Name = "Orange Juice"});
category.Products.Add(new Product{ Name = "Tomato Juice"});
category.Products.Add(new Product{ Name = "Cola"});
//...
context.Categories.InsertOnSubmit(category);
// This will insert the Category and
// the three Products we associated to.
EDIT: pour effectuer des opérations de mise à jour, il vous suffit de récupérer l'entité en faisant une requête, ou l'attacher, par exemple:
var customer = context.Customers.Single(c => c.CustomerID == "ALFKI");
customer.ContactName = "New Contact Name";
context.SubmitChanges();
DataContext pistes les changements de ses entités apparentées et lorsque la méthode SubmitChanges est appelée, il détecte que le changement, et générer une instruction SQL de mise à jour dans les coulisses pour faire l'opération de mise à jour ...
Merci . . Cela fonctionne mais maintenant je me suis rendu compte que je ne veux pas en ajouter un nouveau mais plutôt mettre à jour un existant. .what est la méthode pour mettre à jour un enregistrement existant. – leora
produit du produit = context.Products.Single (p => p.ProductID == 1); product.ProductName = "Kindle"; product.UnitPrice = 359.99m; context.SubmitChanges(); – jason
Une chose à laquelle vous devez faire attention est l'objet DataContext. Lorsque vous effectuez la mise à jour, assurez-vous d'obtenir l'objet en premier dans la base de données, puis mettez-le à jour en utilisant un seul objet DataContext. Si vous essayez de joindre un objet d'un DataContext à un autre DataContext, tout l'enfer se déchaîne. – azamsharp