zoukankan      html  css  js  c++  java
  • Mego(05)

    前言

    使用过EntityFramework6的朋友应该都知道EF中的PowerTools这个工具可以帮助初学者或者开发人员快速构建一个EF的数据上下文,并且可以很直观的看到实体之间的关系。不过目前升级到EFCore后就只有命令行工具,并不那么直观。今天和大家介绍的工具也是具有同样的作用。

    首先大家需要去微软的Visual Studio Marketplace下载并安装VS扩展Mego Tools,通过一系列安装过程中再次打开Visual Studio后就可以在扩展和更新对话框中找到这个扩展,说明已经安装成功。

    从新项目开始

    为了能更直观一点我们新建一个C#控制台(.Net Fraemwork)项目,这个大家都会的,然后通过添加项对话框可以找到名为Mego 数据上下文的项模板,如果没有在根分类中找到可以在搜索对话框中查找Mego关键字就可以出现该模板。

    选择数据源

    双击启动该模板后就可以进行向导界面,第一步就是要选择数据源,对于第一次使用的朋友来说是需要新建一个数据源,可以从下拉菜单中选择你需要连接数据库(即提供程序),目前该扩展支持 SQL Server、Oracle、PostgreSQL、SQLite 等八种数据库,这里我们以Oracle为例 ,建议大家给连接起一个好记的名称,以便后面再次选择。数据源设置界面如下图所示。点高级按钮可以出现右边的详细设置界面,可以设置连接的每一个参数。这个同EF的PowerTools工具是一样的。

    对于非NET Core类型的项目在选好数据源之后可以设置将当前连接信息保存到App.config或者Web.config文件中,这个工具会自动识别。

    选择数据库对象

    选好连接点下一步后,工具会加载当前数据库所有表或视图对象,根据需要可以选择要生成的表及表中的列,并且可以做一些代码生成的设置,主要设置项目如下:

    1. 生成类型的类名及上下文属性名
    2. 生成类型的注释
    3. 生成列属性名,是否为空、注释及强制数据库类型
    4. 如果是特殊类型可以设置精度、长度等信息
    5. 当前列是否参与并发检查(这个仅对非本地数据库有用)

    在下一个版本中会支持数据关系生成。

    最后还可以以单复数形式生成代码。

    通过以上设置后点完成即可生成如下代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Caredev.Mego;
    using Caredev.Mego.DataAnnotations;
    using mego = Caredev.Mego.DataAnnotations;
    
    namespace ConsoleApp1
    {
        public class Model1 : DbContext
        {
    
            public Model1()
                : base("Model1")
            { }
            public DbSet<COUNTRy> COUNTRIES { get; set; }
            public DbSet<JOB> JOBS { get; set; }
    
        }
        [Table("COUNTRIES", Schema = "HR")]
        public class COUNTRy
        {
            [Key, mego.String(2, true)]
            public string COUNTRY_ID { get; set; }
            [Nullable(true), mego.String(40)]
            public string COUNTRY_NAME { get; set; }
            public decimal REGION_ID { get; set; }
        }
        [Table("JOBS", Schema = "HR")]
        public class JOB
        {
            [Key, mego.String(10)]
            public string JOB_ID { get; set; }
            [mego.String(35)]
            public string JOB_TITLE { get; set; }
            [Precision(6, 0)]
            public decimal MIN_SALARY { get; set; }
            [Precision(6, 0)]
            public decimal MAX_SALARY { get; set; }
        }
    }
    

    对于非NET默认支持的数据库还需要安装相应的连接提供程序,这里我们使用的是Oracle还需要安装Nuget包:Oracle.ManagedDataAccess。

    然后我们就可以访问Oracle的数据库了,例如下面示例代码。 

    using (var db = new Model1())
    {
        var data = db.JOBS.ToArray();
    }
    

    工具代码

    该扩展的代码都已上传Github,

    https://github.com/CarefreeXT/MegoTools

    欢迎大家提出问题改进。

    声明:一个新的技术或框架出现后还是需要时间的沉淀,我个人觉的至少需要半年以上的时间,所以请暂时不要将该框架应用到你觉的重要的系统中。不过也请大家可以多多试用,帮助Mego可以快速成长,感谢各位的问题及意见反馈。
  • 相关阅读:
    读取Excel还用POI?试试这款开源工具
    Maven optional 关键字透彻图解
    Java 8 Stream Api 中的 peek 操作
    Lombok 使用详解,简化Java编程
    C# 基础知识系列- 16 开发工具篇
    C# 基础知识系列- 15 异常处理篇
    C# 基础知识系列- 14 IO篇 流的使用
    Java Spring Cloud 实战之路-01 框架选型
    C# 基础知识系列- 14 IO篇 文件的操作
    C# 基础知识系列- 14 IO篇 文件的操作
  • 原文地址:https://www.cnblogs.com/CarefreeXT/p/9039059.html
Copyright © 2011-2022 走看看