What is the difference between POCO, Code First, and simple EF approach?

Technology CommunityCategory: Entity FrameworkWhat is the difference between POCO, Code First, and simple EF approach?
VietMX Staff asked 3 years ago

All these three approaches define how much control you want on your Entity Framework code. Entity Framework is an OR mapper, it generates a lot of code, it creates your middle tier (Entity), and Data Access layer (Context).

But a lot of times you want to enjoy the benefits of both worlds, you want the auto-generation part to minimize your development time and you want control on the code so that you can maintain code quality.

Below is the difference table which defines each of the approaches. In simple Entity Framework, everything is auto generated and so you need the EDMX XML file as well. POCO is semi-automatic so you have full control on the entity classes but then the context classes are still generated by the EDMX file.

In Code First, you have complete control on how you can create the entity and context classes. Because you are going to manually create these classes, you do not have dependency on the EDMX XML file. Below is a simple table which shows the cross comparison.

	                       EDMX	      Entity	  Context
Simple entity framework	Needed	    Auto	    Auto
POCO approach	          Needed	    Manual	  Auto
Code First	             Not Needed	Manual	  Manual