Почему мой объект не обновляется в linq?

У меня есть метод, в котором я ЧИТАЮ объекты из БД, например:

public Object getProduct(int categoryId, int productId)
{
        DataClassesDataContext db = new DataClassesDataContext(Settings.getDefaultConnectionStringName());

        switch (categoryId)
        {
            case CCategorii.CARTI_ID:
                {
                    IEnumerable<Carti> product = (from c in db.Cartis
                                                  where c.Carti_id == productId
                                                  && c.Vizibil == true
                                                  select c);

                    if (product.Count() != 0)
                        return product.First();

                    break;
                }
           //so on
        }
}

Теперь у меня есть другой метод, в котором я выполняю обновление:

public void updateProduct()
{
   Object productToBeUpdated = getProduct(1,1);
    DataClassesDataContext db = new DataClassesDataContext(Settings.getDefaultConnectionStringName());
   //update some properties of the product
   productToBeUpdated.setQuantity(productToBeUpdated.getQuantity()+1);
   db.submitChanges();
}

Что ж, продукт был успешно прочитан из предыдущего метода, но не были внесены изменения в базу данных.

Я думаю, причина в том, что я делаю это ЧТЕНИЕ-ОБНОВЛЕНИЕ в двух разных DataContext ... Если это причина, как вы угрожаете этой ситуации?

О да, я могу читать продукт и обновлять его одним и тем же методом, но это означает дублировать метод, который я использую для чтения, и добавлять к нему обновления ... и я бы хотел избежать этого .

0
задан Cristian Boariu 25 November 2011 в 10:46
поделиться