EF学习的个人心得(一)
EF的难点在于如何与框架融合。
EF本身的内容非常简单,原理是使用时,根据数据库中的表灌装一个个DbSet<>,使用时,封装了ADO底层的操作,而且提供延迟实现,导航属性等上层功能。
所以EF的实际应用中,难点在于如何告知EF映射关系。包括数据库类型,连接字符串,映射关系,主外键等等,因为这个环节会根据项目所使用的架构不同而出现差别。
例如,在.Net FrameWork控制台应用中,EF就提供了3种建立映射的方法。分别是DBFirst,ModelFirst,CodeFirst。
其实现方法各不一样。
而在.NetCore的Web应用中,EF建立映射的方式更多依赖于项目自身的IOC容器实现,一个Context交由容器实现,因此映射关系局限于通过一个委托+实体类属性去传递。而这种场景下,DBFirst,ModelFirst,CodeFirst的实现方式又有区别。
因此,EF的难点在于区分具体实际应用的场景,进行与框架的融合。
如果单靠枚举的方式学习每一种情况下EF的使用,那么必然会导致混乱,而且始终不得EF的要领。万变不离其宗,我们必须深究EF自身是如何提供这些方式,去举一反三,这样才能把EF玩透。