C# 复制实体对象及其关联时出现问题
在我的项目中,我首先使用带有实体框架模型的MVC 我有一个实体目标卡,该实体与另一个实体SelectedQuestion关联 这个协会看起来是这样的:目标卡1…许多选择的问题 我想要实现的是复制一个GoalCard对象及其值,并确保关联实体也能得到它 我已经试过了deep clone等的大部分东西,但我无法让它工作 我可以成功地复制一个GoalCard对象,并使用新Id将其添加到我的GoalCard实体中,但我无法复制关联实体 我有一个repository类,可以检索目标卡:C# 复制实体对象及其关联时出现问题,c#,asp.net-mvc,entity-framework,linq-to-entities,clone,C#,Asp.net Mvc,Entity Framework,Linq To Entities,Clone,在我的项目中,我首先使用带有实体框架模型的MVC 我有一个实体目标卡,该实体与另一个实体SelectedQuestion关联 这个协会看起来是这样的:目标卡1…许多选择的问题 我想要实现的是复制一个GoalCard对象及其值,并确保关联实体也能得到它 我已经试过了deep clone等的大部分东西,但我无法让它工作 我可以成功地复制一个GoalCard对象,并使用新Id将其添加到我的GoalCard实体中,但我无法复制关联实体 我有一个repository类,可以检索目标卡: public G
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;
}
如果有人能给我举个例子,说明如何确保关联实体也得到复制,我将不胜感激
提前谢谢
-将此方法更改为同时循环选择的问题:
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;
}
你需要复制每个相关实体,并将其与你的新目标重新关联。你能给我一个如何工作的例子吗?谢谢SelectedQuestion是一个实体,SelectedQuestions是一个导航属性。这样行吗?我要到明天早上才能尝试你的例子。你可能需要将所选的问题q与新的目标卡重新关联——但不是100%确定