0
これで、asp.netエンティティフレームワークmvcプロジェクトの同じmodel.edmx内に2つの異なるテーブルがあります。最初のテーブルは私が更新するために設定したメインテーブルで、問題はありません。 2番目の表は、最初の表とまったく同じスキーマを持つ空の表です。 2番目の表には、表1の行が挿入され、変更を記録し、誰が変更を行ったのかを示します。同じデータを同じデータベースに2つの異なるテーブルに挿入
テーブル1用にモデル化されたデータを、テーブル2用にモデル化して行を挿入する方法はありますか?
テーブル2からテーブル1を参照しようとすると、「Model1 'タイプを「Model2」に暗黙的に変換できません。ここで
は、私がこれを行うにしようとしていますのActionResultです:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "ID,ECode,EmpType,FTE,TeamName,ReportGroup,Include,GoalEdDol,GoalEdAcct,GoalCmDol,GoalCmAcct,Update_By,Update_Date")] Staffing staffing)
{
if (ModelState.IsValid)
{
staffing.Update_Date = DateTime.Now;
staffing.Update_By = Request.LogonUserIdentity.Name.Split('\\')[1];
db.Entry(staffing).State = EntityState.Modified;
db.SaveChanges();
Staffing_Hist staffing_hist = staffing;
// I would like to do similar to above but I have to convert staffing into a staffing_hist model
return RedirectToAction("Index");
}
return View(staffing);
}
私はasp.netとエンティティフレームワークに新しいです。私は過去数週間にわたって自分自身を教えてきたので、どんな助けも大歓迎です。
代わりにデータベーストリガーを使用する方が簡単でしょうか? –
Staffing_HistとStaffingは2種類あります。 [Automapper](http://automapper.org/)は、これらの種類のタスクに最適です。コードはstaffing_hist = Mapper.Map(staffing)のようになります。別のオプションは、Staffingオブジェクトを取得して手動でマップするコンストラクタをStaffing_Histに追加することです。 var staffing_hist =新しいStaffing_Hist(人員配置); –
ありがとうございます。私は間違いなくAutomapperを試してみます。 – cole570