C#insert,update_id最大值+1

/// <summary>
/// 登录主材料信息
/// </summary>
/// <param name="Material">主材料对象</param>
/// <returns>void</returns>
public void Insert(List<MaterialDetail> materialDetailList)
{
DataClassesDataContext db = this.CreateContext();
//构建每个material_id中update_id最大值映射表
Dictionary<string, int> materialDetailMap = new Dictionary<string, int>();
var map = from materialDetail in db.MaterialDetails
group materialDetail by new { materialDetail.inside_id, materialDetail.material_id } into m
select new
{
key1 = m.Key.inside_id,
key2 = m.Key.material_id,
value = m.Max(x => x.update_id)
};
foreach (var obj in map)
{
int nValue = obj.value + 1;
materialDetailMap.Add(obj.key1+obj.key2, nValue);
}
///所有既存商品信息删除 启用状态 = 02:取消
db.ExecuteCommand(SqlConst.MATERIALDETAIL_STATUS);
//开始保存数据
foreach (MaterialDetail bean in materialDetailList)
{
//若映射表中存在则此update_id+1
if (materialDetailMap.ContainsKey(bean.inside_id+bean.material_id))
{
bean.update_id = materialDetailMap[bean.inside_id+bean.material_id];
materialDetailMap[bean.inside_id+bean.material_id] = bean.update_id + 1;
}
else
{ //若映射表中的material_id没有,则update_id的初始值为1,并把这个记录加入映射表
bean.update_id = 1;
materialDetailMap.Add(bean.inside_id+bean.material_id, 2);
}
}
db.MaterialDetails.InsertAllOnSubmit(materialDetailList);
db.SubmitChanges();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值