1

プロジェクトでEntity Framework Model-FirstでMVCを使用しています

エンティティGoalCardがあり、このエンティティは別のエンティティに関連付けられていますSelectedQuestion

関連付けは次のようになります。 GoalCard 1....Many SelectedQuestion

私が達成したいのは、GoalCard オブジェクトとその値を複製し、関連付けエンティティもそれを確実に取得することです。

ディープクローンなどのほとんどを試しましたが、動作しません。

オブジェクトを正常にコピーして新しいエンティティにGoalCard追加することはできますが、関連エンティティを複製することはできません。GoalCardId

ゴールカードを取得するリポジトリ クラスがあります。

 public GoalCard GetGoalCardByID(int id)
    {
        return db.GoalCard.SingleOrDefault(x => x.Id == id);
    }

コントローラー内のアクションメソッドでは、次のことを行います。

public ActionResult Template(int id)
{
   var GoalCard = Repository.GetGoalCarddByID(id);
   Repository.CopyGoalCard(GoalCard);
   return View();
}

そして最後に私のリポジトリ:

public GoalCard CopyGoalCard(GoalCard goalcard)
{
  db.Detach(goalcard);
  GoalCard.EntityKey = null;
  db.AddToGoalCard(goalcard);
  db.SaveChanges();
  return goalcard;

}

アソシエーションエンティティもコピーできるようにする方法について、誰かが私に例を挙げてくれれば、とても感謝しています..

前もって感謝します!

-

4

1 に答える 1

0

SelectedQuestions もループするようにこのメソッドを変更します。

public GoalCard CopyGoalCard(GoalCard goalcard)
{
  db.Detach(goalcard);
  GoalCard.EntityKey = null;
  foreach (SelectedQuestion q in goalCard.SelectedQuestions) {
      db.Detach(q);
      q.Key = null;
      db.AddSelectedQuestion(q);
  }
  db.AddToPlayer(goalcard);
  db.SaveChanges();
  return goalcard;
}
于 2012-05-09T19:13:39.923 に答える