我在那裏,我讀了DB對象的方法,例如:爲什麼我的對象沒有在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();
}
好,該產品succcesfully從以前的閱讀方法,但沒有對數據庫進行更改。
我認爲原因是我在兩個不同的DataContext中執行READ-UPDATE ... 如果這是原因,您如何威脅這種情況?
哦,是的,我可以讀取產品和更新在同一個方法,但這意味着複製我用於閱讀和添加到它更新的東西...我想避免這種方法。
創建的DB一個實例並更新你......正在編輯一個實例並保存另一個實例。 –