1

これが私がやろうとしていることです:

//Check if NewsItems exists in HttpRuntime.Cache
...

//If it does not, add the items to cahce
using (var Work = new UnitOfWork())
{
    var NewsItems=Work.Repository<NewsRepository>().GetTop10();
    //Store NewsItems in HttpRuntime.Cache
    ...
}

その後、 from を使用NewsItemsHttpRuntime.Cacheます。私の問題はNewsItems、古いコンテキストにまだ接続されていることがあり、それらを適切に切断する方法がわからないことです。

私はこのような簡単なことを試しました:

foreach (var NewsItem in NewsItems) {
    Work.Context.Entry(NewsPost).State = System.Data.Entity.EntityState.Detached;    
}

しかし、それ自体が適切に切り離されていないようで、同じエンティティを使用して複数のコンテキストの例外が発生します。

代わりにエンティティを複製する必要がありますか? または、別の方法でエンティティの接続を解除する必要がありますか?

4

1 に答える 1

0

これを試しましたか?

foreach (var NewsItem in NewsItems)
{
    ((IObjectContextAdapter) Work.Context).ObjectContext.Detach(NewsItem);
}
于 2013-08-21T10:15:36.600 に答える