如何使用LINQ更新数据库中的记录?

时间:2016-05-03 09:58:39

标签: entity-framework linq

我想在LINQ中执行以下操作:

update [dbo].[AdminLogin] set [ADMIN_PASSWORD] = 'abc' where [ADMIN_ID] = 1

我从模型中获取管理员密码,管理员ID存储在变量中:

var userid = (from m in db.RequestPasswordReset
                   where m.Id == Unid
                   select m.UserId).FirstOrDefault();

怎么做?

5 个答案:

答案 0 :(得分:3)

要更新实体,您必须指定Modified州。

using (var db= new DbContext())
{
  var entity= db.AdminLogin.Where(x => x.ADMIN_ID == userid ).SingleOrDefault();
  entity.ADMIN_PASSWORD = 'abc';
  db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
  db.SaveChanges();
}

查看详情here

答案 1 :(得分:1)

使用此代码:

using (var context = new YourContext())
{
    var res = context.AdminLogin.Where(x => x.ADMIN_ID == userid ).SingleOrDefault();
    res.ADMIN_PASSWORD = 'abc';
    context.SaveChanges();
}

答案 2 :(得分:1)

你可以试试这个:

fecthMail()

答案 3 :(得分:0)

userid.ADMIN_PASSWORD= 'abc';
db.SaveChanges();  //better then db.SubmitChanges() in some case

答案 4 :(得分:0)

如果您使用linQ.dbml文件,那么您必须这样写:

using (var db= new DbContext())
{
  var entity= db.AdminLogin.Where(x => x.ADMIN_ID == userid ).FirstOrDefault();
  entity.ADMIN_PASSWORD = 'abc';

  db.SubmitChanges();
}