C# 数据库isn';t正在更新

C# 数据库isn';t正在更新,c#,entity-framework,C#,Entity Framework,我刚刚开始使用实体,到目前为止,它让我的生活变得无限轻松。然而,当我试图更新一行时,这就是我遇到问题的地方。谷歌搜索将我带到了Attach(),我已经尝试了: public void Update() { using (var context = new HDDCContainer()) { context.Projects.Attach(this); context.SaveChanges(); } } 这是我的项目类中的一个方法 然而

我刚刚开始使用实体,到目前为止,它让我的生活变得无限轻松。然而,当我试图更新一行时,这就是我遇到问题的地方。谷歌搜索将我带到了
Attach()
,我已经尝试了:

public void Update()
{
    using (var context = new HDDCContainer())
    {
        context.Projects.Attach(this);
        context.SaveChanges();
    }
}
这是我的项目类中的一个方法


然而,在查询我的数据库之后,我发现它实际上并没有更新。我没有从中得到任何错误或例外。当我逐步完成时,我可以看到我对项目所做的更改

您必须在实体附着后对其进行更改

比如说

context.Projects.Attach(project);

project.Name = "New Funky Name";

context.SaveChanges();
如果根据您的示例在保存/更新方法之外修改实体,则可能需要手动标记状态

context.Projects.Attach(project);
DbEntityEntry entry = context.Entry(day);       // Gets the entity Entry instance
entry.Property("Name").IsModified = true;       // Individual property modified
entry.State = System.Data.EntityState.Modified; // or Entire object modified

附着实体后,必须对其进行更改

比如说

context.Projects.Attach(project);

project.Name = "New Funky Name";

context.SaveChanges();
如果根据您的示例在保存/更新方法之外修改实体,则可能需要手动标记状态

context.Projects.Attach(project);
DbEntityEntry entry = context.Entry(day);       // Gets the entity Entry instance
entry.Property("Name").IsModified = true;       // Individual property modified
entry.State = System.Data.EntityState.Modified; // or Entire object modified

您需要告诉实体框架,与数据库中的值相比,您刚刚附加的对象的状态已更改,您只需修改条目的状态,如下所示:

            db.Favorites.Attach(favorite);
            var ent = db.Entry(favorite);
            ent.State = EntityState.Modified;   
            db.SaveChanges();

您需要告诉实体框架,与数据库中的值相比,您刚刚附加的对象的状态已更改,您只需修改条目的状态,如下所示:

            db.Favorites.Attach(favorite);
            var ent = db.Entry(favorite);
            ent.State = EntityState.Modified;   
            db.SaveChanges();

请看一看,并让我知道

让我们了解您用于保存实体的完整代码……让我们了解您用于保存实体的完整代码……啊。。。这是有道理的!啊。。。这是有道理的!很高兴听到这个,没问题很高兴听到这个,没问题