做系统用哪个网站好,图片生成链接的app,深圳企业网站制作设计,简述网站开发岗位及职务【导读】目前.NET Core中据我了解到除了官方的EF Core外#xff0c;还用的比较多的ORM框架#xff08;恕我孤陋寡闻哈#xff0c;可能还有别的#xff09;有FreeSql、SqlSugar#xff08;排名不分先后#xff09;。FreeSql和SqlSugar都已早早支持国产数据库比如人大金仓、… 【导读】目前.NET Core中据我了解到除了官方的EF Core外还用的比较多的ORM框架恕我孤陋寡闻哈可能还有别的有FreeSql、SqlSugar排名不分先后。FreeSql和SqlSugar都已早早支持国产数据库比如人大金仓、神通、达梦要是项目要求支持适配国产数据库中同时项目若早已使用上如上两种ORM框架那并可以很愉快的玩耍了要是使用EF Core就有点伤脑筋只能自主写一套适配此文只是以最新版本作为示例任意版本都可快速适配完人大金仓基于我大国产数据库收费当然就有技术支持大可催官方出EF Core 5.x、6.x当项目进行框架升级但等不及官方出迭代版本出完后可能还需要当当小白鼠试验一番本文未尝不是一条先行之道十分钟对接人大进仓驱动通过官网仅提供V8 R6版本所以下载其windows版本最终可看到提供了对应不同版本的驱动但是呢EF Core版本仅为2.2.4要是EF Core为3.1.x版本过高当你调试时你会发现有异常反编译其dll其实里面有一部分方法并未实现换句话说在较高版本上底层EF Core做了实现但2.2.4适配版本并未实现我们用到的则是如下两个dll第一个驱动作为程序集引用另外一个则是适配EF Core对EF Core还算有点熟悉适配EF Core无非就三步走策略基础Microsoft.EntityFrameworkCore映射Microsoft.EntityFramework.Relational迁移Microsfot.EntityFramwork.Design上面前两步是必要条件至于最后一步看项目是否用到迁移没用到可无需引入讲到这里你以为我准备自主实现这一套吗不存在的有捷径不走为何非得装个b勒到其底层借鉴于PS于是乎我下载efcore.pg 6.0.1版本1、根据自身需要如上删除没必要的包什么测试项目啊支持对日期转换插件等等啊实际只需要EFCore.PG其结构与EF Core源码一毛一样2、归纳演绎法人大金仓适配EF Core命名Kdbndp.EntityFrameworkCore.KingbaseES是否找到等同规律我们将Npgsql全局替换为Kdbndp同理将PostgreSQL全局替换为KinbaseES对于异常处理PostgresException全局替换为KingbaseException系统数据库pg_ 全局替换为sys_不替换也没问题主要用于数据库表迁移若用到迁移就必须替换接下来则是将底层驱动Npgsql.dll替换为Kdbndp.dll比较正规放到驱动文件夹中将EFCore.PG项目文件中底层库给移除然后引用上述驱动文件夹程序集生成解决方案错误基本也就那么几十个而已(大多数错误来源于资源文件加载)根据实际情况修改修改没啥大问题比如Npgsql底层驱动做了额外扩展但对人大金仓而言(比如映射)则没有就删除对应属性等等若使用VS 2022生成解决方案时加载资源文件时可能会出现如下错误DTE”同时存在于“EnvDTE, Version8.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a”和“Microsoft.VisualStudio.Interop, Version17.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a”中此时需要将/tools/Resources.tt打开将如下# assembly nameEnvDTE #指定本地该程序集实际目录可能有根本上的解决方案# assembly nameC:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\PublicAssemblies\envdte.dll #最后将EF.PG类库生成程序集名指定为人大金仓所提供程序集名称小小测试一下执行查询并翻译sql语句弱弱透露下官方现仅提供R6据悉针对R3版本貌似不再迭代更新据我猜测可能是其底层基于PG部分功能没有“借鉴”完如下特性则是R3对应的Kdbndp.dll人大金仓虽基于PG但更专注于数据分析方向以及物联网等领域助力于我国信息化建设和发展个人认为还是很值得鼓励的针对.NET 6基于Npgsql移植适配人大金仓稍微麻烦一丢丢而对于.NET Core 3.x或5.x则简单很多相关命名空间替换基本没啥错误好了这条捷径你get到了此处是不是应该艾特下官方做适配的小伙伴无需过多折腾直接借鉴npgsql适配是不是更快呢