国产达梦数据提供了.NET Core 2.X环境下的EntityFramework Core连接支持。在ABP框架下可以利用EFCore连接达梦数据库。
注意:仅支持.NET Core 2.X环境,不支持.NET Core 3.0环境,会各种报错无法使用。
在达梦数据库的安装目录下可以找到.NET Standard 2.0的NuGet包。
已经手动上传到公司内网NuGetServer上,地址为:http://192.168.199.203:8011/nuget
在VS中打开NuGet管理器搜索“Microsoft.EntityFrameworkCore.Dm”并安装。
注意:会安装失败,达梦提供的程序包需要Internal.AspNetCore.SDK的引用,猜测是AspNetCore的非正式版,应该还没完成,估计也是没有发布到NuGet官方仓储的原因。
直接在项目中引用“drivers\dotNet\DmProvider\netstandard2.0”目录下的DmProvider.dll和“drivers\dotNet\EFCore.Dm\netstandard2.0”目录下的Microsoft.EntityFrameworkCore.Dm.dll。
在ABP框架中的XXX.EntityFrameworkCore项目中修改连接配置,代码如下:
public static class DbContextOptionsConfigurer { public static void Configure( DbContextOptionsBuilder<PersonnelDbContext> dbContextOptions, string connectionString ) { /* This is the single point to configure DbContextOptions for PersonnelDbContext */ //dbContextOptions.UseSqlServer(connectionString); dbContextOptions.UseDm(connectionString); } }
修改XXX.Web项目中appSetting.json配置文件中的数据库连接字符串。
注意:不要使用SYSDBA管理员用户登录,同时确保所使用的用户未被锁定。在达梦数据库中模式、用户、登录是三个不同的概念,要严格区分开。
创建实体类并创建实体与数据库表的映射关系,使用CodeFirst模式创建数据库。
注意:达梦数据库命名默认都是用大写,所以一定要创建实体与数据库表的映射关系,否则会造成查询时的大小写混淆。