最近用NoSQL较多写,用传统的EF到不多,但在一些.net core小程序中也小试牛刀过,不过当时用的是微软为.net core量身定制的Entity Framework Core,只是一些比较常规的增删改查,没有怎么深入使用,感觉差别不大。虽然知道EF Core是重新设计的,但觉得EF Core和EF在轻度使用上差别不大。
这两天打算计划重构一个老项目,想将其迁移到.net core上去。简单的试了一下,大部分的功能移植比较顺利,但却发现EF迁移到EF Core不是那么容易的事情,模型的关系映射的API就有不小差异,另外,底层的一些API也有不少差异。甚至官方也说EF6到EF core不是升级,不建议将EF6程序迁移到EF Core。
虽然可以一个个的修改和适配,但额外的工作量就一下上来了,并且还带来了不少测试的工作。网上搜了一下解决方案,有一个第三方移植的支持.net core的移植版本EF,但这个是非官方版本,担心里面有坑,不敢尝试。
正当我准备放弃.net core的迁移的时候,不经意间把nuget的预览版本的选项打开了,发现EF 6.3 preview版本支持.net standard了,然后就下载试了一下,直接顺利迁移过去就能用。感觉也没有什么bug。找了一下官方的文档:Announcing Entity Framework 6.3 Preview with .NET Core Support。EF 6.3是支持.net core的,它会随着.net core 3.0一起发布,估计在9月份也能发布了,等到时候发布正式版的时候再试一下,感兴趣的朋友可以先尝鲜试一下。
当然,EF Core才是未来的版本,如果准备将项目长期演进的话,还是建议迁移到EF Core的。