.NET Core C#系列之EF Core与达梦DM数据库的使用教程

达梦数据库的简介就不写了,自己去官网搜索。

至于我为什么写这个教程,是因为工作中用到了,并且走了一些弯路。为了让大家少走弯路,就写个文章分享一下,反正也闲着无聊。

因工作中用到了abp vnext框架,且使用的ORM是EF Core使用的MySql数据库。

(abp vnext 默认就是支持efcore 的,所以切换达梦很顺利,就是有些字段类型,达梦兼容会出现一些问题)

abp 切换第三方的数据库传送地址:https://docs.abp.io/zh-Hans/abp/7.1/Entity-Framework-Core-Other-DBMS

当客户要求切换达梦数据库的时候,有点懵逼。这适配达梦数据库,网上也搜到的文章很少,一筹莫展之时,就去了达梦官网。https://eco.dameng.com/

嗯,官网文档很全。官网右上角也有下载按钮。

9ba8d78fe449888276e53f35c6a730b8.png

这里我下载的是Windows版本的安装包。

4c00164cda21959d0849eb59f56299c2.png

下载完,是一个zip压缩包。解压里面的文件。这个文件夹很全,数据库程序、可视化界面、迁移工具、各种编程语音对应的驱动程序等等都在里面。

dc1a04cfc1b64da9a7af62bcae0e8208.png

解压开之后,找到dotnet的驱动和efcore包。

~dm8_20230106_x86_win_64\dm8_20230106_x86_win_64\source\drivers\dotNet

8c196ddc30e0a448e2226a3003db5938.png

这个里面你找到对应的版本,就可以在代码里使用了。

使用起来也很麻烦,因为里面发布的dll、nuget包都是离线版本的,你也不能推送到nuget.org官网上去。因为【国产、安全】所以,一切的包工具都是离线版本。

e2f2d03e61eff981fc99f22549af9b6e.png

c82c4242ad4f1efb90f229afddcd0ac6.png

此时你可以搭建一个私有的nuget管理服务,搭建教程微软文档有,别人写的也有。如果你是本地开发,可以使用另外一个快捷的办法。

打开你的 visual studio编辑器,找到你的nuget管理工具,点击右上角的设置图标。

252dae02c589619db0413dd54449a093.png

33331c800fe081d5a207d4544afa6479.png

添加一个私有的nuget包源头。

然后就可以在nuget上加载出你刚刚添加的nuget了。

a708f9eac5aac3586d498b15a6e1f3b5.png

添加完毕后,就可以按照ef core的方式创建的你的model、dbcontext了。

然后使用 code first 创建库表结构。

efcore的三件套,安装一下,版本和你创建的保持一致

Microsoft.EntityFrameworkCore


Microsoft.EntityFrameworkCore.Tools


Microsoft.EntityFrameworkCore.Design

创建一个user类

public class User
    {
        public string Id { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 年龄
        /// </summary>
        public int? Age { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        public bool? Gender { get; set; }
        /// <summary>
        /// 创建日期
        /// </summary>
        public DateTime? CreateTime { get; set; }
    }

添加数据库上下文

namespace DmExample.DbContext
{
    /// <summary>
    /// 达梦数据库上下文
    /// </summary>
    public class DmContext : Microsoft.EntityFrameworkCore.DbContext
    {
        /// <summary>
        /// 用户
        /// </summary>
        public DbSet<User> Users { get; set; }


        public DmContext(DbContextOptions<DmContext> options) : base(options)
        {
        }


        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);


            modelBuilder.Entity<User>().ToTable("user");
        }
    }
}

配置数据库连接

打开项目中的appsettings.json配置文件:

{
  //...
  "ConnectionStrings": {
    "DmExample": "Server=你的IP地址;Database=数据库名字;User=账号;Password=密码;"
  }
}

注册数据库上下文

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    // 注册DbContext
    services.AddDbContext<DmContext>(options =>
  options.UseDm(Configuration.GetConnectionString("DmExample")));
}

创建数据库

add-migration init1

更新数据库命令

update-database

此时去数据库里,看看库表已经生成了。

达梦官方的ef core是有点小bug的,不过整体是可以使用的。

所谓的bug是时间格式化,必须按照达梦的来定义,否则就会报错。

dm.exception "&*(**&&"

就是这样的问题,我也在达梦论坛提了问题,人家说解决了,咱验证了,还是没有解决,不过整体还是可以使用的。

2dd1ac6e72dd1d7bc737f4237677ae3f.png

dc0e239ba843d02e44aa8b10394b96a4.png

问题传送门:https://eco.dameng.com/community/question/d52ced27800e61e2b67b6f77c265cb55

不过,大家遇到问题,就在达梦官方提问题,让他们解决,这样我们ef core适配达梦才会更加强大。

好了,今天的分享就到这里,感谢大家的阅读。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您提供一个简单的教程,帮助您使用 ASP.NET Core 6.0 框架和 SQL Server 数据库生成注册登录界面。 1. 安装 SQL Server 数据库 如果您还没有安装 SQL Server 数据库,请使用此链接下载并安装 SQL Server 数据库:https://www.microsoft.com/en-us/sql-server/sql-server-downloads 2. 创建 ASP.NET Core 6.0 项目 打开 Visual Studio 2022 或更高版本,创建一个新的 ASP.NET Core 6.0 Web 应用程序项目。在创建项目时,选择 Web 应用程序模板。 3. 添加 Entity Framework Core 在解决方案资源管理器中,右键单击项目文件夹,选择“管理 NuGet 包”。在 NuGet 包管理器中,搜索并安装 Microsoft.EntityFrameworkCore.SqlServer 和 Microsoft.EntityFrameworkCore.Tools 包。 4. 创建数据库模型 在项目根目录中,创建一个名为 Models 的文件夹。在该文件夹中,创建一个名为 ApplicationUser.cs 的新类。在该类中,定义用户模型: ``` using Microsoft.AspNetCore.Identity; namespace YourProjectName.Models { public class ApplicationUser : IdentityUser { // 可以在此定义其他用户属性 } } ``` 5. 创建数据库上下文 在 Models 文件夹中创建一个名为 ApplicationDbContext.cs 的新类。在该类中,继承 DbContext 并将 ApplicationUser 添加到 DbSet: ``` using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; namespace YourProjectName.Models { public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } } } ``` 6. 配置应用程序 在 Startup.cs 文件中,配置应用程序以使用 Entity Framework Core 和 SQL Server 数据库。在 ConfigureServices 方法中,添加以下代码: ``` services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores<ApplicationDbContext>(); ``` 在 appsettings.json 文件中,添加以下代码: ``` "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true" }, ``` 7. 生成注册和登录功能 在 Visual Studio 中,右键单击“Controllers”文件夹,选择“添加” > “新建项目项”。在“添加新项目项”对话框中,选择“Identity”模板,并选择“注册”和“登录”选项。单击“添加”按钮,Visual Studio 将为您生成注册和登录功能。 8. 运行应用程序 按 F5 键或单击“调试” > “启动调试”按钮以运行应用程序。您现在可以访问注册和登录页面。 希望这个简单的教程可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值