/// <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();
}
/// 登录主材料信息
/// </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();
}