Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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# 未在EF中保存更新的行_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 未在EF中保存更新的行

C# 未在EF中保存更新的行,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有3000个家长需要大规模更新。首先,我想我会使用SQL server进行大规模更新,并为其提供一个数组,但该数组太长,我得到了一个错误,即为WHERE IN()子句提供的字符串将被截断 所以我回到EF,但无论我做什么,更改都不会保存。 当我检查局部变量时,我看到了对象中的更改,但是当db.SaveChages()完成时,更改不在数据库中 我在这里一窍不通 public void UpdateParentStatus(List<int> primaryParentIds)

我有3000个家长需要大规模更新。首先,我想我会使用SQL server进行大规模更新,并为其提供一个数组,但该数组太长,我得到了一个错误,即为
WHERE IN()
子句提供的字符串将被截断

所以我回到EF,但无论我做什么,更改都不会保存。 当我检查局部变量时,我看到了对象中的更改,但是当
db.SaveChages()
完成时,更改不在数据库中

我在这里一窍不通

    public void UpdateParentStatus(List<int> primaryParentIds)
    {
        //string queryArray = string.Join(",", primaryParentIds);
        //db.Database.ExecuteSqlCommand("UPDATE Parent SET IsPrimary = 1 WHERE ParentId IN ({0})", queryArray);
        foreach (int id in primaryParentIds)
        {
            var parentResult = pList.Single(p => p.ParentId == id);
            parentResult.IsPrimary = true;
        }
        db.SaveChanges();
    }
public void UpdateParentStatus(列出PrimaryParentId)
{
//字符串queryArray=string.Join(“,”,primaryParentId);
//ExecuteSqlCommand(“更新父集合IsPrimary=1,其中父ID位于({0})”中),queryArray;
foreach(PrimaryParentId中的int id)
{
var parentResult=pList.Single(p=>p.ParentId==id);
parentResult.IsPrimary=true;
}
db.SaveChanges();
}
试试这个:

foreach (int id in primaryParentIds)
{
    var parentResult = pList.Single(p => p.ParentId == id);
    parentResult.IsPrimary = true;
    pList.Entry(parentResult).EntityState = EntityState.Modified;
}
db.SaveChanges();

什么是
pList
以及如何设置变量/字段/属性?它有一个
public bool IsPrimary{get;set;}
有趣的部分是pList comin的内容来自哪里。您有一个名为“db”的上下文,但您的对象似乎来自其他地方,正如其他人所说,很高兴看到plist来自何处。您可以添加db.Entry(parent.State=EntityState.Modified;将IsPrimary设置为true后。我假设您的问题可能是一个断开连接的模型,但没有更多的代码,无法知道。这就成功了:)太愚蠢了,完全忽略了这一点。