Click here to Skip to main content
15,884,836 members
Articles / Programming Languages / C# 4.0

Entity Framework - Second Level Caching with DbContext

Rate me:
Please Sign up or sign in to vote.
4.75/5 (13 votes)
6 Aug 2012CPOL6 min read 105.3K   2.6K   48  
How to enable second level caching in the Entity Framework when using DbContext.
=== version 3.0
================================================================================================
change - Removed overloads of logging methods that were taking format string from ILogger and
	ILogger and IExtendedLogger and didn't have word Format in their name.
	For example:
	void Error(string format, params object[] args); // was removed
	void ErrorFormat(string format, params object[] args); //use this one instead


impact - low
fixability - medium
revision - 

description - To minimize confusion and duplication those methods were removed.

fix - Use methods that have explicit "Format" word in their name and same signature.
================================================================================================
change - Removed WebLogger and WebLoggerFactory

impact - low
fixability - medium
revision - 

description - To minimize management overhead the classes were removed so that only single 
	Client Profile version of Castle.Core can be distributed.

fix - You can use NLog or Log4Net web logger integration, or reuse implementation of existing
	web logger and use it as a custom logger.

================================================================================================
change - Removed obsolete overload of ProxyGenerator.CreateClassProxy

impact - low
fixability - trivial
revision - 

description - Deprecated overload of ProxyGenerator.CreateClassProxy was removed to keep the
	method consistent with other methods and to remove confusion

fix - whenever removed overload was used, use one of the other overloads.

================================================================================================
change - IProxyGenerationHook.NonVirtualMemberNotification method was renamed

impact - high
fixability - easy
revision - 

description - to accommodate class proxies with target method NonVirtualMemberNotification on
	IProxyGenerationHook type was renamed to more accurate NonProxyableMemberNotification
	since for class proxies with target not just methods but also fields and other member that
	break the abstraction will be passed to this method.

fix - whenever NonVirtualMemberNotification is used/implemented change the method name to
	NonProxyableMemberNotification. Implementors should also accommodate possibility that not
	only MethodInfos will be passed as method's second parameter.
	
================================================================================================
change - DynamicProxy will now allow to intercept members of System.Object

impact - very low
fixability - easy
revision - 

description - to allow scenarios like mocking of System.Object members, DynamicProxy will not
	disallow proxying of these methods anymore. AllMethodsHook (default IProxyGenerationHook)
	will still filter them out though.

fix - whenever custom IProxyGenerationHook is used, user should account for System.Object's
	members being now passed to ShouldInterceptMethod and NonVirtualMemberNotification methods
	and if neccessary update the code to handle them appropriately.

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Technical Lead
United Kingdom United Kingdom
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions