2016-08-29 4 views
1

私はカラムがusername,passwordのテーブルを持っています。テーブルの管理者は、データを更新できます。Entity Frameworkを使用してデータベース内の列の値を1つだけ更新する方法はありますか?

ここで、IsAgreeという名前の新しい列を(フラグとして)追加したい場合は、ユーザーが初めてログインするときに設定する必要があります。しかし、データを設定する間、他の列のデータに影響を与えるべきではありません。usenameとIsagreeフラグをオブジェクトとして送信します。

flgDetail = { usename:"vis" Isallowed:True } 

[Route("api/TermsAndCondition/setflag")] 
public IHttpActionResult post(FlagDetails FlagDetail) 
{ 
    var user = _context.table.Where(s => s.UserName == flagDetail.UserName); 
} 

ポストまたはプットを使用する必要がありますか?

1つの列を更新するにはどうすればよいですか?

他の列には影響しません。

+0

'_context.Configuration.AutoDetectChangesEnabled'はtrueに設定されていますか? –

+0

どこに設定する必要がありますか? –

+1

変更していない場合は、「true」に設定する必要があります。通常、コンストラクタなどでコンテキスト内で管理されます。しかし、あなたはどこでそれをチェックすることができます。 'bool isEanbled = _context.Configuration.AutoDetectChangesEnabled;'。 'AutoDetectChanges'が有効な場合、EFは変更されたプロパティのみを更新します –

答えて

1

あなたはpostまたはputのいずれかを使用できます。問題はありません。次のように更新できます。

[Route("api/TermsAndCondition/setflag")] 
public IHttpActionResult post(FlagDetails flagDetail) 
{ 
    var user = _context.table.Where(s => s.UserName == flagDetail.UserName); 
    user.IsAgree =flagDetail.Isallowed; 
    _context.SaveChanges() 
} 
+0

これはあなたのために働いていますか? – Sampath

関連する問題