Проблема со вставкой LINQ to SQL. , - PullRequest
0 голосов
/ 29 июня 2009

Я смотрел на пример того, как сделать вставку в Linq to SQL, и здесь было сказано:

NorthwindDataContext context = new NorthwindDataContext();
context.Products.Add(new Product(..));
context.SubmitChanges();

но когда я смотрю на приведенное ниже, (в моем случае таблица - это UserInfo), в таблице нет метода «Добавить»:

public System.Data.Linq.Table<UserInfo> UserInfos
    {
        get
        {
            return this.GetTable<UserInfo>();
        }
    }

какая-либо подсказка, что я здесь делаю не так?

1 Ответ

2 голосов
/ 29 июня 2009

Вы должны использовать метод 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.

РЕДАКТИРОВАТЬ: Чтобы выполнить операции обновления, вам просто нужно извлечь объект, выполнив запрос или прикрепив его, например:

var customer =  context.Customers.Single( c => c.CustomerID == "ALFKI");

customer.ContactName = "New Contact Name";
context.SubmitChanges();

DataContext отслеживает изменения своих связанных сущностей, и когда вызывается метод SubmitChanges, он обнаруживает это изменение и генерирует инструкцию Update SQL за кулисами для выполнения операции обновления ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...