Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在linq中将记录从一个表移动到另一个表_C#_Sql_Linq_Service - Fatal编程技术网

C# 如何在linq中将记录从一个表移动到另一个表

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

我在SQL数据库中有一个ProductLevel表。它包含商店的产品。我想在用户早上登录手持设备时将这些记录复制到ProductLevelDaily表中

当他们扫描项目时,bool从false变为true,因此他们可以随时查看剩下哪些项目需要扫描/检查

我从移动设备将siteID和日期传递给服务器:

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";
}