当前位置: 首页 > 面试题库 >

如何使用实体框架仅更新一个字段?

鲜于裕
2023-03-14
问题内容

这是表

用户数

UserId
UserName
Password
EmailAddress

和代码..

public void ChangePassword(int userId, string password){
//code to update the password..
}

问题答案:

Ladislav的答案已更新为使用DbContext(在EF 4.1中引入):

public void ChangePassword(int userId, string password)
{
    var user = new User() { Id = userId, Password = password };
    using (var db = new MyEfContextName())
    {
        db.Users.Attach(user);
        db.Entry(user).Property(x => x.Password).IsModified = true;
        db.SaveChanges();
    }
}


 类似资料:
  • 当我尝试更新一个实体的一个字段时,我是新来的,我注意到在日志中Hibernate执行两个查询,在更新之前,它会对所有字段进行SELECT。可以吗?为什么Hibernate执行SELECT?我如何用一个UPDATE查询更新一个字段?此外,当我试图更新一个实体中的单个标题时,它有另一个嵌套实体,我最终得到了一堆SELECT。我认为这对性能不好,或者我错了? 在互联网上,我找到了使用 @Modifyin

  • 问题内容: 有没有什么办法来 RESEED a LocalDB 表使用EF? 我不想使用此SQL命令: 仅供参考:我正在使用EF 6.1。 非常感谢。 问题答案: 我假设您正在尝试重置表上的主键?如果是这样,EF没有办法做到这一点。 如您所述,您将必须使用SQL命令,例如: 但是我不得不问为什么您仍然尝试这样做?对您而言,主键字段中的值是什么都无关紧要。

  • 我需要在另一个相关实体更新后对一个实体执行更新。 我有两个实体:和,关系为1:N。两者都有字段。状态取决于所有子状态字段。因此,如果更新了一个,我需要重新计算的新状态并持久化/更新它。 我实现了一个监听器: 监听器在中进行了注释,并且正在正确调用它。但是,在流程完成后,仍然保持旧状态,即使使用正确的新状态调用。

  • 我有3个字段的实体:id,lastname和PhoneNumber。我想创建一个方法,用于更新所有字段,或者只更新一个或两个字段。 我使用Hibernate和JPA存储库。当我尝试更新所有字段时,一切都运行良好,但例如,当我想只更新lastname而不更改phoneNumber时,我在output中输入了旧phoneNumber的null。 我正在寻找解决方案,我添加了@DynamicUpdate

  • 问题内容: 我收到一个包含30个字段的JSON,而我的实体是根据此JSON构建的。问题是:不应更新两个字段(两个日期)。 如果使用,两个字段都会更新。 如何避免更新这两个字段? 也许使用criteria.Example? 没有我写大量的HQL,有什么方法可以做到这一点吗? 问题答案: 本文非常详细地解释了您的问题,但我也将在这里进行总结。 如果您永远不想更新这两个字段,则可以将它们标记为: 当你将

  • 问题内容: 有没有一种方法可以使字段在使用JPA-Hibernate 4进行更新操作时不持久,但在创建操作时持久化? 我以这种方式尝试过 但是使用@Transient注释时,该字段将在所有CRUD操作中都是瞬态的,我想要一种方法来指定仅在此操作上是持久性的(创建)。 有没有办法做到这一点? 谢谢! 问题答案: 如本文所述,您需要设置为: 该属性指示Hibernate从生成的SQL语句中忽略此列。