2016-08-23 6 views
1

に新しい値を設定していない:EFエンティティは、私はエンティティクラスを持つプロパティ

public class Account : IAccount 
{ 
    [Key, ForeignKey("PUser")] 
    public int IdUser { get; set; } 
    public virtual User PUser { get; set; } 

    [Required] 
    public decimal Balance { get; set; } 
    } 

しかし、私は、エンティティを取得し、プロパティに新しい値を設定しBalance値は変更されません更新しようとします。

なぜこれが起こり、どのように変更する必要がありますか?

Account senderAccount = _context.Accounts.FirstOrDefault(u => u.IdUser == userSenderId); 
if (senderAccount != null) 
senderAccount.Balance = 400; 

そのsenderAccount.Balanceはまだ古い値を持つ

のthnx

+5

あなたは '_context.SaveChanges();'がありません。バランスを設定した後に追加します。 –

+0

そうです、私のせいだと私は疲れているようです。 )Thnx – 3axap

+1

ああ...あの答えを@AdilMammadovに入れて申し訳ありません私は自分のものを削除しました:D – Sampath

答えて

4

SaveChangesメソッドが呼び出されるまで、クエリがデータベースに送信されません後。だから、あなたがしなければならないのは、クエリをデータベースに送るときに_context.SaveChanges();行を追加することです。あなたのケースでは、それは次のようになります。該当する場合

Account senderAccount = _context.Accounts.FirstOrDefault(u => u.IdUser == userSenderId); 
if (senderAccount != null) 
senderAccount.Balance = 400; 
_context.SaveChanges(); 

また、usingブロックの内側にクレートコンテキストに忘れないでください。 続きを読むhere

+1

助けてくれてありがとう!私の場合_contextはリポジトリの一部で、彼と処分します – 3axap

+0

@ 3axap、あなたは大歓迎です。はい、それはより良い習慣です。 *エンティティフレームワーク単位の作業パターン*を検索することもできます。 –

関連する問題