C# 如何在linq中将记录从一个表移动到另一个表
我在SQL数据库中有一个ProductLevel表。它包含商店的产品。我想在用户早上登录手持设备时将这些记录复制到ProductLevelDaily表中 当他们扫描项目时,bool从false变为true,因此他们可以随时查看剩下哪些项目需要扫描/检查 我从移动设备将siteID和日期传递给服务器:C# 如何在linq中将记录从一个表移动到另一个表,c#,sql,linq,service,C#,Sql,Linq,Service,我在SQL数据库中有一个ProductLevel表。它包含商店的产品。我想在用户早上登录手持设备时将这些记录复制到ProductLevelDaily表中 当他们扫描项目时,bool从false变为true,因此他们可以随时查看剩下哪些项目需要扫描/检查 我从移动设备将siteID和日期传递给服务器: int userID = int.Parse(oWebRequest.requestData[5]); and a few other things IEnumerable<dProduct
int userID = int.Parse(oWebRequest.requestData[5]); and a few other things
IEnumerable<dProductLevelDaily> plditems
= DSOLDAL.CheckProductDailyLevelbySiteCount(siteID, currentDate);
这段代码一直有效,直到我将foreach循环与insert放在一起
IEnumerable<dProductLevelDaily> plditems
= DSOLDAL.CheckProductDailyLevelbySiteCount(siteID, s);
if (plditems.Count() == 0) // plditems.Count() < 0)
{
IEnumerable<dProductLevel> ppitems = DSOLDAL.GetProductsbySite(siteID);
if (ppitems.Count() > 0)
{
oWebResponse.count = ppitems.Count().ToString();
oWebResponse.status = "OK";
}
else
{
oWebResponse.count = ppitems.Count().ToString();
oWebResponse.status = "OK";
}
}
else
{
oWebResponse.count = "2"; // plditems.Count().ToString();
oWebResponse.status = "OK";
}
这些类型的批量操作与LINQtoSQL的功能不太匹配 在我看来,我会使用一个存储过程来实现这一点,您可以将它包含在Linq到SQL的DataContext中并从那里调用 这也会将数据留在服务器上,并将其从一个表复制到另一个表,而不是将所有数据拉到客户端并重新上载到服务器
LINQtoSQL是一个很好的工具,用于处理单个对象或小集合。它不太适合批量操作 太多的代码样本和太少的代码样本同样是一个问题。尽量减少你的样本,更清楚地解释你遇到的具体问题。
public static void insertProductLevelDailyBySite(dProductLevelDaily pld)
{
dSOLDataContext dc = new dSOLDataContext();
try
{
dc.dProductLevelDailies.InsertOnSubmit(pld);
// dProductLevelDailies.Attach(pld, true);
dc.SubmitChanges();
}
catch (Exception exc)
{
throw new Exception(getExceptionMessage(exc.Message));
}
finally
{
dc = null;
}
}
IEnumerable<dProductLevelDaily> plditems
= DSOLDAL.CheckProductDailyLevelbySiteCount(siteID, s);
if (plditems.Count() == 0) // plditems.Count() < 0)
{
IEnumerable<dProductLevel> ppitems = DSOLDAL.GetProductsbySite(siteID);
if (ppitems.Count() > 0)
{
oWebResponse.count = ppitems.Count().ToString();
oWebResponse.status = "OK";
}
else
{
oWebResponse.count = ppitems.Count().ToString();
oWebResponse.status = "OK";
}
}
else
{
oWebResponse.count = "2"; // plditems.Count().ToString();
oWebResponse.status = "OK";
}