1

这是我的问题,

我在 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; }

在我的应用程序中,我可以编辑该组件以添加、删除或编辑其任何属性。我可以根据国家或语言添加几个品牌所有者或描述。当我选择其中一个组件进行编辑时,我将组件加载到 Session 变量中,并对该 Session 变量执行所有操作。

当我完成编辑项目时,我有两个按钮,接受和取消。如果我取消在 Session 变量中所做的所有更改,则将被解除。

当我按下“接受”按钮更新所选项目时,问题就来了。我找不到路

这是我的接受方法:

    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 });
        }
    }

我已尝试附加、添加并将状态设置为已修改,但它不起作用。我也尝试过分离 de 组件并再次附加它。有人可以告诉我我做错了什么吗?

非常感谢,并提前感谢。

对不起我的英语不好。

4

0 回答 0