Вы должны использовать метод InsertOnSubmit:
NorthwindDataContext context = new NorthwindDataContext();
context.Products.InsertOnSubmit(new Product(..));
context.SubmitChanges();
Метод Add существует на членов EntitySet, в основном используется при добавлении дочерних объектов к родителю одного, например:
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: Чтобы выполнить операции обновления, вам просто нужно получить объект, выполнив запрос или связав его, например:
var customer = context.Customers.Single(c => c.CustomerID == "ALFKI");
customer.ContactName = "New Contact Name";
context.SubmitChanges();
DataContext отслеживает изменения связанных сущностей и когда метод SubmitChanges называется, он обнаружит, что изменения, и генерировать оператор SQL Update за кулисы, чтобы сделать операцию обновления ...
Благодарю . , это работает, но теперь я понял, что я не хочу добавлять новый, а скорее обновлять существующий. . Каков метод обновления существующей записи. – leora
Продукт product = context.Products.Single (p => p.ProductID == 1); product.ProductName = "Kindle"; product.UnitPrice = 359.99m; context.SubmitChanges(); – jason
Одна вещь, о которой вы должны быть осторожны, это объект DataContext. Когда вы обновляете, обязательно сначала получите объект из базы данных, а затем обновите его с помощью одного объекта DataContext. Если вы попытаетесь прикрепить объект одного DataContext к другому DataContext, то все ад сломается. – azamsharp