В моем веб-приложении mvc4 мне нужно скопировать все данные одной формы, которые были сохранены ранее в другой вновь созданной форме. Но когда я копирую данные, используя следующий код, все данные перемещаются из одной формы в другую, а данные из предыдущей формы удаляются. Укажите, почему это происходит и как копировать эти данные.Скопировать одну форму Данные в другую форму Entity Framework
public FormEntity CopyFormData(CopyForm copyForm)
{
using (SIPSEntities db = new SIPSEntities())
{
if (db.QmsEvaluationForms.Where(x => x.IsActive == true).Any(x => x.FormName == copyForm.FormName))
{
throw new Exception("Form Name Already Exists!");
}
else
{
var copyData = (from log in db.QmsEvaluationForms
where log.EvaluationFormId == copyForm.CopyFrom && log.IsActive == true
select new
{
ZeroOnFatal = log.MakeScoreZeroOnFatal,
FormControls = (from log1 in log.QmsEvaluationFormControls where log1.IsActive == true select log1).ToList(),
FormParameters = (from log1 in log.QmsEvaluationParameters where log1.IsActive == true select log1).ToList()
}).FirstOrDefault();
//Insert new form
QmsEvaluationForm newForm = new QmsEvaluationForm();
newForm.FormName = copyForm.FormName;
newForm.MakeScoreZeroOnFatal = copyData.ZeroOnFatal;
newForm.IsActive = true;
newForm.CreatedOn = DateTime.Now;
newForm.SubprocessId = copyForm.SubProcessId;
//(copy data from child table) this data is deleted from previous form and copied to another form
newForm.QmsEvaluationFormControls = copyData.FormControls;
//(copy data from child table) this data is deleted from previous form and copied to another form
newForm.QmsEvaluationParameters = copyData.FormParameters;
db.QmsEvaluationForms.Add(newForm);
db.SaveChanges();
return new FormEntity { FormId = newForm.EvaluationFormId, FormName = newForm.FormName, MakeZero = newForm.MakeScoreZeroOnFatal };
}
}
}
Когда u означает форму. U означает HTML-форму. Кокс код ниже выглядит нормально. –
Нет данных из обеих дочерних таблиц db не копируется, а переходит из объекта предыдущей формы в объект формы. – VIVEK