Visual studio 2010 用于更新多个记录的linq查询

Visual studio 2010 用于更新多个记录的linq查询,visual-studio-2010,linq,Visual Studio 2010,Linq,我有一个名为industries的表。在这方面,我的领域是 为您的id工作, 为用户id工作, 为工业界工作。 对于相同的workfor_id值,我有不同的workfor_industry_id 为了更新workfor_industry_id字段,我在foreach循环中实现了内部循环,以获取workfor_industry_id的值。在这里,相同的记录使用不同的workfor_industry_id重载 你能告诉我如何实现这个吗。更新 此更新增加了一点错误检查,并假设-1永远不是行业id的有效

我有一个名为industries的表。在这方面,我的领域是

为您的id工作, 为用户id工作, 为工业界工作。 对于相同的workfor_id值,我有不同的workfor_industry_id

为了更新workfor_industry_id字段,我在foreach循环中实现了内部循环,以获取workfor_industry_id的值。在这里,相同的记录使用不同的workfor_industry_id重载

你能告诉我如何实现这个吗。

更新 此更新增加了一点错误检查,并假设-1永远不是行业id的有效值

short GetShort(string value) {
  short returnValue;
  value = (value ?? string.Empty).Replace("\"",null);
  return short.TryParse(value, out returnValue) ? returnValue : (short)-1;
}

foreach (var k in us){ 
  var id=Convert.ToInt16(k.id);
  var toRemove=from i in dbContext.industries
               where i.workfor_id == k.id
               select i;
  var toAdd = from x in (k.industry ?? string.Empty).Split(',')
              select new Industry { 
                      workfor_id=id,
                      workfor_industry_id=GetShort(x)
                    };

  dbContext.industries.DeleteAllOnSubmit(toRemove); 
  dbContext.industries.InsertAllOnSubmit(toAdd.Where(x=>x.workfor_industry_id != -1));

}
dbContext.SubmitChanges();
更新 此更新增加了一点错误检查,并假设-1永远不是行业id的有效值

short GetShort(string value) {
  short returnValue;
  value = (value ?? string.Empty).Replace("\"",null);
  return short.TryParse(value, out returnValue) ? returnValue : (short)-1;
}

foreach (var k in us){ 
  var id=Convert.ToInt16(k.id);
  var toRemove=from i in dbContext.industries
               where i.workfor_id == k.id
               select i;
  var toAdd = from x in (k.industry ?? string.Empty).Split(',')
              select new Industry { 
                      workfor_id=id,
                      workfor_industry_id=GetShort(x)
                    };

  dbContext.industries.DeleteAllOnSubmit(toRemove); 
  dbContext.industries.InsertAllOnSubmit(toAdd.Where(x=>x.workfor_industry_id != -1));

}
dbContext.SubmitChanges();


1将您上下文中的数据加载到列表中,2迭代该列表中的元素并进行更新,3将其保存回数据库……在迭代过程中,我必须再迭代一个循环以获取workfor_industry_id。因此,同一条记录正在重载。您不太清楚要做什么。请更新您的问题并在代码中显示给我们,即使它是伪代码,您正在尝试做什么,您在哪里遇到了困难/不确定如何继续?p{var indList=dbContext.industries.Wherei=>i.workfor_id==k.id.Selecti=>i.ToArray;}中的foreachvar k使用相同的workfor_id获取多个值,但要更新workfor_industry_id字段,我必须再迭代一个循环,这里的记录加载过度请不要将代码样本或样本数据放入注释中-因为您无法格式化它,所以读取它非常困难。。。。取而代之的是:通过编辑你的问题来更新它,以提供额外的信息!谢谢。1将您上下文中的数据加载到列表中,2迭代该列表中的元素并进行更新,3将其保存回数据库……在迭代过程中,我必须再迭代一个循环以获取workfor_industry_id。因此,相同的记录是重载的。您不太清楚自己要做什么。请更新您的问题并在代码中显示给我们,即使它是伪代码,您正在尝试做什么,您在哪里遇到了困难/不确定如何继续?p{var indList=dbContext.industries.Wherei=>i.workfor_id==k.id.Selecti=>i.ToArray;}中的foreachvar k使用相同的workfor_id获取多个值,但要更新workfor_industry_id字段,我必须再迭代一个循环,这里的记录加载过度请不要将代码样本或样本数据放入注释中-因为您无法格式化它,所以读取它非常困难。。。。取而代之的是:通过编辑你的问题来更新它,以提供额外的信息!谢谢。与此类似,在toRemove中,我得到的是准确的记录,但在toAdd中,我没有得到任何记录,这是说输入字符串的格式不正确。在k.industry中,我得到的值是4,1格式的。@steve您得到的错误表明解析时的x不是有效的整数。如果每个条目不是一个有效的整数,你想要什么样的行为?实际上,workfor_industry_id是short类型。我在k.industry.Split做了一些小改动,我得到了4,1format@steve您能否澄清您的k.industry 4,1或您的k.industry 4,1的价值与此类似,在toRemove中,我得到的是精确的记录,但在toAdd中,我没有得到任何记录,这说明输入字符串的格式不正确。在k.industry中,我得到的值是4,1格式的。@steve您得到的错误表明解析时的x不是有效的整数。如果每个条目不是一个有效的整数,你想要什么样的行为?实际上,workfor_industry_id是short类型。我在k.industry.Split做了一些小改动,我得到了4,1format@steve你能澄清一下你的k.industry是4,1还是你的k.industry是4,1的价值