我计划将 WCF(不是 ria)与 Entity Framework 4 和 STE(自我跟踪实体)结合使用。如果我正确理解这一点,我的 WCF 应该向客户端(在我的情况下为 Silverlight)返回一个实体或实体集合(例如使用 LIST 而不是 IQueryable)。
然后客户端可以更改实体或更新它。在这一点上我相信它是自我跟踪?这是我有点困惑的地方,因为有很多关于 STE 不跟踪的报告问题。
无论如何,然后要更新,我只需要用另一种方法将实体发送回我的 WCF 服务来进行更新。我应该每次都创建一个新的 OBJECTCONTEXT 吗?在每种方法中?
如果我每次在 WCF 上的每个方法中都创建一个新的对象上下文,那么我不需要将 STE 重新附加到对象上下文吗?
所以基本上单靠这个是行不通的??
using(var ctx = new MyContext())
{
ctx.Orders.ApplyChanges(order);
ctx.SaveChanges();
}
或者我应该在 WCF 服务的构造函数中创建一次对象上下文,以便 1 次调用和使用相同 WCF 实例的每个附加调用都使用相同的对象上下文?
我可以在来自客户端的每个方法调用中创建和销毁 WCF 服务 - 因此每次实际上创建一个新的对象上下文。
我知道让对象上下文保持很长时间并不是一个好主意。