我收到的異常是IEntityChangeTracker的多個實例無法引用實體對象。我的代碼的結構是這樣的...C#實體框架 - IEntityChangeTracker問題
我的上下文類看起來是這樣的:
public class MyContext : DbContext, IDataContext
{
public MyContext (string connectionString) :
base(connectionString)
{
}
public DbSet<AssigneeModel> Assignees { get; set; }
public DbSet<AssetAssignmentModel> AssetAssignments { get; set; }
}
public class AssigneeController : Controller
{
protected MyContext db = new MyContext(ConnectionString);
[HttpPost]
public ActionResult Import(SomeObjectType file)
{
AssigneeModel assignee = new AssigneeModel();
assignee.FirstName = "Joe";
assignee.LastName = "Smith";
// Assignees have assets, and the relationship is established via an AssetAssignmentModel entity
AssetAssignmentModel assetAssignmentModel = new AssetAssignmentModel
{
Asset = someExistingAsset,
// Assignee = assignee, // Don't establish relationship here, this object will be added to the assignee collection
}
assignee.AssetAssignments.Add(assetAssignmentModel); // Manually add object to establish relationship
db.Assignees.Add(assignee); // Add the assignee object
// Exception occurs when adding the object above
};
}
EF 4.1版
是否Asset = someExistingAsset來自不同的上下文? –
是的,它來自另一種方法的服務調用......但我認爲上下文將被丟棄? – contactmatt
這就是問題 - 您需要將該實體從其他實體中分離出來,然後將其附加到此新的上下文中,或者對所有調用使用相同的上下文 –