C# 无法定义关系,因为它们附加到不同的ObjectContext对象

C# 无法定义关系,因为它们附加到不同的ObjectContext对象,c#,asp.net,entity-framework-4,C#,Asp.net,Entity Framework 4,我不知道我遗漏了什么,因为无论如何调用页面,都会执行相同的页面加载,但是当我在不保存任何内容的情况下退出页面,然后返回页面时,我的上下文对象似乎无法像在退出页面之前保存更改时那样检索已保存的值,当我试图从那里保存时,将我引向这个例外: 无法设置两个对象之间的关系,因为它们附加到不同的ObjectContext对象 以下是我在页面加载中看到的内容: public partial class FraisDeplacement : System.Web.UI.UserControl { BLL

我不知道我遗漏了什么,因为无论如何调用页面,都会执行相同的页面加载,但是当我在不保存任何内容的情况下退出页面,然后返回页面时,我的上下文对象似乎无法像在退出页面之前保存更改时那样检索已保存的值,当我试图从那里保存时,将我引向这个例外:

无法设置两个对象之间的关系,因为它们附加到不同的ObjectContext对象

以下是我在页面加载中看到的内容:

public partial class FraisDeplacement : System.Web.UI.UserControl
{
    BLL.SessionContext context;
    DAL.DBObjects.VersionDemande versionDemande;


    protected void Page_Load(object sender, EventArgs e)
    {
        this.context = (BLL.SessionContext)Session["sessionContext"];

        this.Page.LoadComplete += new EventHandler(Page_LoadComplete);

        versionDemande = (DAL.DBObjects.VersionDemande)Session["versionDemande"];

    }

}

我也有这个问题,您可能需要这两个函数之一:

context.DBAccess.Attach(versionDemande);
还是这个

versionDemande = this.context.DBAccess.ApplyCurrentValues<DAL.DBObjects.VersionDemande>("VersionDemande", versionDemande);
versionDemande=this.context.DBAccess.ApplyCurrentValues(“versionDemande”,versionDemande);
根据您在页面上创建/检索对象的方式,我建议您首先将这些对象放入try-catch中,这样可以帮助您了解失败后的情况