zoukankan      html  css  js  c++  java
  • [开源] .Net 使用 ORM 访问 达梦数据库

    前言

    武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发、销售与服务,同时可为用户提供大数据平台架构咨询、数据技术方案规划、产品部署与实施等服务。多年来,达梦公司始终坚持原始创新、独立研发,目前已掌握数据管理与数据分析领域的核心前沿技术,拥有全部源代码,具有完全自主知识产权。

    随着华为、中兴事务,国产数据库市场相信是未来是趋势走向,纵观 .net core 整个圈子对国产达梦数据库的支持几乎为 0,今天我们使用 FreeSql ORM 来体验国产达梦数据库。

    整体来讲,达梦对 Oracle 语法有着 90% 的兼容性,但还有一些细节需要注意,FreeSql 对此做了优化进行了完美支持。

    1、安装环境

    数据库服务器:DM8

    下载地址:http://www.dameng.com/down.aspx?TypeId=11&FId=t14:11:14

    .NET版本:.net core 3.1

    下载地址:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install

    开发机器 :windows 10

    ODBC驱动:

    由于达梦数据库目前只能使用 ODBC 驱动访问数据库,如果成功安装了 DM8,然后我们查看系统 ODBC,正常的话会显示如下:

    2、创建项目

    我们以 console 类型项目试验 插入、删除、更新、查询 等功能,创建控制台项目,使用命令:

    dotnet new console

    dotnet add package FreeSql.Provider.Odbc

    dotnet add package FreeSql.Repository

    3、创建实体模型

    using System;
    using FreeSql.DataAnnotations;
    
    public class User
    {
        [Column(IsIdentity = true)]
        public long Id { get; set; }
    
        public string UserName { get; set; }
    
        public string PassWord { get; set; }
    
        public DateTime CreateTime { get; set; }
    }
    

    4、初始化 ORM

    static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
        .UseConnectionString(FreeSql.DataType.OdbcDameng, 
        "Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;UID=USER1;PWD=123456789")
        .UseMonitorCommand(cmd => Trace.WriteLine($"线程:{cmd.CommandText}
    "))
        .UseAutoSyncStructure(true) //自动创建、迁移实体表结构
        .UseSyncStructureToUpper(true)
        .Build();
    

    5、插入数据

    var repo = fsql.GetRepository<User>();
    
    var user = new User { UserName = "dm1", PassWord = "123" };
    repo.Insert(user);
    

    var users = new []
    {
        new User { UserName = "dm2", PassWord = "1234" },
        new User { UserName = "dm3", PassWord = "12345" },
        new User { UserName = "dm4", PassWord = "123456" }
    };
    repo.Insert(users);
    //批量插入
    

    6、更新数据

    user.PassWord = "123123";
    repo.Update(user);
    

    7、查询数据

    var one = fsql.Select<User>(1).First(); //查询一条数据
    
    var list = fsql.Select<User>().Where(a => a.UserName.StartsWith("dm")).ToList();
    

    8、删除数据

    fsql.Delete<User>(1).ExecuteAffrows();
    
    fsql.Delete<User>().Where(a => a.UserName.StartsWith("dm")).ExecuteAffrows();
    

    结语

    这篇文章简单介绍了在 .net core 3.1 环境中使用 FreeSql 对国产达梦数据库的访问,目前 FreeSql 还支持 .net framework 4.0 和 xamarin 平台上使用。

    国产数据库未来是发展趋势,拥有自主权不受他人限制,我在好几个群里看到有人说公司正准备全面使用国产系统+国产数据库。

    除了 增删查改,FreeSql 还支持很多功能,就不一一演示,一篇文章介绍不完。

    FreeSql 是 .NETCore/.NetFramework/Xamarin 平台下的 ORM 开源项目,支持 SqlServer/MySql/PostgreSQL/Oracle/Sqlite ,还有达梦数据库,未来还会接入更多的国产数据库支持。

    源码地址:https://github.com/2881099/FreeSql

    谢谢支持!

  • 相关阅读:
    HDU 6182 A Math Problem 水题
    HDU 6186 CS Course 位运算 思维
    HDU 6188 Duizi and Shunzi 贪心 思维
    HDU 2824 The Euler function 欧拉函数
    HDU 3037 Saving Beans 多重集合的结合 lucas定理
    HDU 3923 Invoker Polya定理
    FZU 2282 Wand 组合数学 错排公式
    HDU 1452 Happy 2004 数论
    HDU 5778 abs 数论
    欧拉回路【判断连通+度数为偶】
  • 原文地址:https://www.cnblogs.com/FreeSql/p/12035228.html
Copyright © 2011-2022 走看看