5

特にlinqを使用して主キー値を使用して、テーブルの単一行を更新しようとしています。

 var mytab = new Customer();
 mytab.FirstName = mymodel.FirstName;
 mytab.LastName = mymodel.LastName;
 mytab.CustomerId = mymodel.CustomerId;

 db.AddToCustomer(mytab);
 db.SaveChanges()

これにより、新しい ID を持つ新しい行が追加されます。コードをステップ実行するmymodelと、更新したい姓または名で正しい値が渡されていることがわかります。

mymodel.CustomerId更新したいレコードの正しい ID ですが、SQL プロファイラーは何も更新していないことを示しています。.First を使用する必要がありますか?

4

2 に答える 2

10

あなたのコードは新しい行を作成します。更新するには、最初にデータベースからIDで顧客を選択してから更新する必要があります。

var mytab = db.Customers.First(g=>g.CustomerId == mymodel.CustomerId);
 mytab.FirstName = mymodel.FirstName;
 mytab.LastName = mymodel.LastName;
 db.SaveChanges();
于 2013-10-08T15:53:20.793 に答える