这是我的问题,
我在Componet.cs中有下一个模型(我的真实组件还有十个Icollections,但我认为问题应该与1个ICollection相同或者10个我没有将它们写下来)。
public partial class Component
{
public Component()
{
this.BrandOwner = new HashSet<BrandOwner>();
this.Description = new HashSet<Description>();
}
public int GestCompID { get; set; }
public int ID { get; set; }
public Nullable<int> BaseGestCompID { get; set; }
public Nullable<int> BaseCompID { get; set; }
public string DefName { get; set; }
public string ProductRef { get; set; }
public virtual country country { get; set; }
public virtual language language { get; set; }
public virtual ICollection<BrandOwner> BrandOwner { get; set; }
public virtual ICollection<Description> Description { get; set; }
在我的应用程序中,我可以编辑该组件,以添加,删除或编辑其任何属性。我可以根据国家或语言添加几个BrandOwners或描述。 当我选择其中一个组件来编辑时,我在一个Session变量中加载Component,并对该Session变量进行所有操作。
当我完成项目的编辑时,我有两个按钮,接受和取消。 如果我取消所有在Session变量中所做的更改都会被解除。
当我按下“接受”按钮更新所选项目时,问题就出现了。
我无法找到方法这是我的Accept方法:
public ActionResult AcceptChanges()
{
try
{
Component component = (Component)Session["component"];
GIEntities.Current.Component.Attach(component);
GIEntities.Current.SaveChanges();
Session["component"] = null;
return RedirectToAction("Index", new { Message = "correct" });
}
catch (DbUpdateException ex)
{
String error = ex.ToString();
Component component = (Component)Session["component"];
return RedirectToAction("EditComponent", new { id = componente.ID });
}
}
我已经尝试将状态附加,添加和设置为Modified,但它不起作用。 我也尝试分离de component并再次附加它。 有人能告诉我我做错了什么吗?
非常感谢,并提前致谢。
抱歉我的英文不好。