挿入と更新の両方に同じコードを使用する方法があることが期待されていました。Entity Framework 4.0挿入/更新
たとえば、エンティティフレームワークを使用して以下のような新しいクライアントを挿入します。
クライアントを更新するために同じコードを使用することができれば、コードを2重に書く必要はありません。
using (var context = new GenWebEntities())
{
clientObj = context.Clients.Single(c => c.ClientId == 31);
var client = new Client
{
FirstName = "Johnathan", // Updated First Name
LastName = "Rock" // Updated Last name
};
clientObj = client;
context.SaveChanges();
}
挿入と更新の両方をコードする1つの方法がある場合は、上記の方法で新しいレコードを挿入する方法がわかります。
**更新** 私はこの解決策に遭遇する問題は、1対多の関係があることです。
例:
私は多くの1つである、別のテーブルClientPaymentを持っています。ですから、ClientPaymentを更新する必要がある場合、このテーブルをどのように参照するのですか?
client.ClientPayments.Add(new ClientPayment { Type = "Credit Card", CardNumber = "4111-1111-1111-1111")
ありがとう:私はnormalyどうなるの挿入のために
。
は、私はあなたの既存のコードは、あなたがそれをやっていると思う何をやっているとは思いません。コンテキストに新しいオブジェクトを追加する場合は、 'context.Add(newClient)'を使用してください。 'context.Clients'IQueryableを使ってDBからオブジェクトを取得する場合、新しいオブジェクトを作成する必要はありません。 'clientObj'のプロパティを変更して' SaveChanges'を呼び出すことができます。 "挿入"(新しいオブジェクトを保存する)と更新(変更されたオブジェクトを保存する)の唯一の違いは、新しいコンテキストの前に 'context.Clients.Add'を実行する必要があることです。 –