0
私が関係を持つ2つのテーブルを持って、彼らは以下のとおりです。Entity Frameworkを持つテーブルを何度も更新する方法
表ユーザ - 表リージョン私の場合は
----------------- -----------------
' idUser ' ' idRegion '
'-------------- ' '---------------'
' email ' ' regionName '
'---------------' '---------------'
' password '
'---------------'
' user_name '
'---------------'
' phone_number '
'---------------'
' id_Region '
'---------------'
、それは挿入と更新の3つの状態がありますデータ。
- ユーザーはメールとパスワードの行だけを入力します。
- ユーザーは、RegionNameを含む残りの行に値を設定できます。
- 最後に、ユーザーは自分が望む行を更新できますが、電子メールとパスワードは更新できます。
これは簡単なことですが、2番目の方法はうまくいきますが、問題は2番目の時間に更新しようとしたときに、Regiontable内で新しい行が作成されます選択されたフィールド。
マイコード:
public HttpResponseMessage Update(UsersGetModel usersGetModel)
{
using (var context = new GoneDatabase())
{
try
{
var user = context.users.Where(a => a.idUser== usersGetModel.id).FirstOrDefault();
user.userName = usersGetModel.Name;
user.PhoneNumber = usersGetModel.PhoneNumber;
user.Region = new region{ regionName= usersGetModel.Region };
context.Entry(user).State = System.Data.Entity.EntityState.Modified;
context.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
あなたは文字通りむしろ
user.Region = new region{ regionName= usersGetModel.Region };
で新しい地域のインスタンスを構築することでそれを言っているので、それは、新しい行を作成しています
ありがとうございます! –