我对实体框架非常陌生,请耐心等待我的学习...
我如何将来自不同上下文的两个对象关联在一起?
以下示例会引发以下异常:
System.InvalidOperationException:由于它们附加到不同的ObjectContext对象,因此无法定义两个对象之间的关系。
void MyFunction()
{
using (TCPSEntities model = new TCPSEntities())
{
EmployeeRoles er = model.EmployeeRoles.First(p=>p.EmployeeId == 123);
er.Roles = GetDefaultRole();
model.SaveChanges();
}
}
private static Roles GetDefaultRole()
{
Roles r = null;
using (TCPSEntities model = new TCPSEntities())
{
r = model.Roles.First(p => p.RoleId == 1);
}
return r;
}
因为我们在ASP.NET应用程序中使用Entity Framework,所以不能使用一个上下文。
TCPSEntities
,并将数据上下文对象命名为model
?你可以考虑不使用new
,而是将预先构建的数据上下文或数据上下文工厂传递给函数。你还可以考虑使用Enumerable.SingleOrDefault
而不是Enumerable.First
。 - yfeldblum