开发者

Entity Framework Caching with the Repository Pattern

If I want to implement caching when I am using the repository pattern and the Entity Framework, couldn't I just do some simple lo开发者_运维知识库gic outside of the Entity Framework to handle the caching?

E.g.

if(Cache[ProductsKey] != null)
{
    return ConvertToProducts(Cache[ProductsKey]);
}
else
{
    var products = repository.Products;
    Cache[ProductsKey] =  products;
    return products;
}

It seems like a lot of people are over-complicating this. Or is doing it this way going to be limiting in some way?


I prefer my repository to be clean. I prefer implementing caching in my service layer if needed.

So i 100% agree with your sample. Your repository returns products (by running query) and you can cache it or not in other layers.

P.S.: I assume that you start your object context when it's needed(session start) and dispose it when session ends.


It is better to cash the entire ObjectContext which is here the (Repository).

Use the Session_Start and Session_End to initialize and dispose the object respectively.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜