【发布时间】:2009-12-28 22:29:13
【问题描述】:
public class Item
{
public int ID {get;set;}
public string SKU {get;set;
public int Quantity {get;set;}
}
我从我的数据库中提取项目,例如:
List<Items> savedItems = Db.GetItems();
然后我有这个方法可以接收一组项目:
public void Update(List<Items> items)
{
// update database
}
传递到 Update 方法中的项目可能已经在数据库中,也可能不在数据库中。必须使用 SKU 属性来完成唯一性。
所以说我在数据库中有:
ID SKU qty
1 a 1
2 b 1
3 c 1
现在,如果我将一个项目集合传递给 Update 方法,则有:
ID=?, SKU=d, qty=1
然后它只会插入一个新项目。
如果我传入一个看起来像这样的项目:
ID=?, SKU=b, qty=1
然后我不会插入新项目,但我会更新 ID=2 的项目。
我该怎么做?我是否应该将所有 SKU 值放入一个哈希中,如果它存在,然后以某种方式找到该项目并更新它?
我可以找到不做数据库查找的项目,因为我已经从数据库中提取了项目。
如果该项目已经在数据库中,我必须更新数量。如果它不在数据库中,它只是被插入。
【问题讨论】:
标签: c# asp.net collections