我想使用ASP.NET MVC 2和Entity Framework进行存储库模式的实现,但是我在这个过程中遇到了一些问题。
首先,我有2个实体,它们之间有关系,如Order和Product。当我生成我的dbml文件时,它为我提供了一个类订单,其中包含一个映射“ProductSet”的属性和一个类产品,其属性映射了与产品相关的订单。
所以我使用基本的CRUD操作创建了像IReporitory的Repository模式,在我的控制器中我实现了ProductRepository或OrderRepository。
当我尝试创建产品并且必须在其上分配我的订单时出现问题,例如ProductOne.Order = _orderRepository.Find(orderId);
这个操作给了我一些奇怪的行为,我不知道它有什么问题。
答案 0 :(得分:2)
问题有点缺乏细节,但我的猜测是你在两个存储库中使用两个单独的ObjectContexts而不是一个。您需要管理ObjectContext的生命周期,将其范围限定为单个Web请求,并且在该Web请求周期的生命周期内只有一个ObjectContext。
Google搜索“web scoped objectcontext”或“objectcontext lifetime”。