2016-05-03 9 views
1
私はLINQで次の操作を行いたい

LINQを使用してデータベース内のレコードを更新する方法は?

私はモデルと管理者IDから管理者パスワードを取得
update [dbo].[AdminLogin] set [ADMIN_PASSWORD] = 'abc' where [ADMIN_ID] = 1 

は、変数に格納されます。

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

は、どのようにそれを行うには?

+0

あなたはEFのコンテキストを使用していますか? –

+0

Linqデータベースの更新ではなく、 –

+0

@KarthikMRはい私は – sumedha

答えて

3

を。あなたはlinQ.dbmlは、あなたがこのように記述する必要があり、その後ファイルを使用している場合

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

+2

エンティティの状態を変更してマークする必要はないとEfはあなたのためにそれを追跡しますhttp://stackoverflow.com/questions/7106211/entity-framework -why-explicit-set-entity-state-to-modified この行を省略することができます。 'db.Entry(entity).State = System.Data.Entity.EntityState.Modified; EFがこれを行います。 – Eldho

+1

'デタッチされたエンティティ(変更トラッキングなしでロードされたエンティティまたは現在のコンテキスト外で作成されたエンティティ)の場合は、手動で状態を設定することが重要です。だから、 'Modified'を使うことは、あなたが常に安全な側にいることを意味します。 –

+0

はい、その有効なステートメントですが、エンティティをフェッチすると追跡されますので、変更せずに変更して変更を保存すると、挿入の代わりに '更新 'を行います。もし私が間違っていれば私を修正してください – Eldho

1

使用このコード:

using (var context = new YourContext()) 
{ 
    var res = context.AdminLogin.Where(x => x.ADMIN_ID == userid).SingleOrDefault(); 
    res.ADMIN_PASSWORD = 'abc'; 
    context.SaveChanges(); 
} 
0
userid.ADMIN_PASSWORD= 'abc'; 
db.SaveChanges(); //better then db.SubmitChanges() in some case 
1

あなたがこの試すことができます:あなたはModified状態を指定するために必要なエンティティを更新するには

var user = db.AdminLogin.FirstOrDefault(x => x.ADMIN_ID == id); 
user.ADMIN_PASSWORD = 'abc'; 
db.SaveChanges(); 
0

を参照してください。

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

    db.SubmitChanges(); 
} 
関連する問題