前言

使用过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(05) - Mego Tools使用教程的更多相关文章

  1. Mego(05) - Mego for Visual Studio Extension

    前言 可能对于一个新的框架而言使用入门对于陌生人而言是比较困难的,因此为了最大限度的为使用者提供便利性,我们给Mego框架开发了针对Visual Studio的集成开发工具,让大家可以像使用Entit ...

  2. [最直白版]一步一步教你用VMware Workstation12安装Ubuntu 16.04和VMware Tools的教程

    [最直白版]Win10下一步一步教你用 VMware Workstation12安装Ubuntu 16.04和VMware Tools的教程 安装过程中使用的软件(要保证电脑里面有下列三个东西): 1 ...

  3. Mego(05) - 创建模型

    Mego框架使用一组约定来基于CLR类来构建模型.您可以指定其他配置来补充和/或覆盖通过约定发现的内容. 这里需要强调的我们EF不同的是框架只支持数据注释的语法来构建模型,后期只有通过其他接口才能更改 ...

  4. Mego(04) - Mego入门

    本教程演示创建一个简单的数据库访问及更新数据的示例以便于初步了解下Mego框架的使用. 文中使用Visual Studio 2017版本. 创建Visual Studio项目 创建一个名为 MegoS ...

  5. Inside Kolla - 05 从 tools 目录开始

    从 tools 目录开始 在上一篇中已介绍了 Kolla 的源代码目录结构和各个目录中源代码的基本作用,现在开始深入到各个目录,介绍目录中的具体内容.每个人分析代码的思路和方法不同,会选择从不同的目录 ...

  6. VMware Tools安装教程

    安装依赖: sudo yum install eject 步骤: 确保 Linux 虚拟机已打开电源. 如果正在运行 GUI 界面,请打开命令 shell. 注意:以 root 用户身份登录,或使用 ...

  7. FreeBSD虚拟机 VMware Tools 安装教程

    对于 FreeBSD 虚拟机,您可以使用命令行工具手动安装或升级 VMware Tools 前提条件 开启虚拟机. 确认客户机操作系统正在运行. 因为 VMware Tools 安装程序是使用 Per ...

  8. ROS教程

    Learning ROS 学习ROS Depending on your learning style and preferences, you can take two approaches to ...

  9. 【转载】Hadoop可视化分析利器之Hue

    http://qindongliang.iteye.com/blog/2212619 先来看下hue的架构图:  (1)Hue是什么? Hue是一个可快速开发和调试Hadoop生态系统各种应用的一个基 ...

随机推荐

  1. EBS 信用检查(二)

    Credit checking feature of Oracle OM provides the ability to check that the customer has sufficient ...

  2. 2013 HTML5中国峰会演讲:Android上的HTML5:过去,现在和将来

    转载请注明原文地址:http://blog.csdn.net/milado_nju ## 会议链接(应用和工具专场) http://2013.html5dw.com/main, 2013年8月10日 ...

  3. java 多线程和线程池

    ● 多线程 多线程的概念很好理解就是多条线程同时存在,但要用好多线程确不容易,涉及到多线程间通信,多线程共用一个资源等诸多问题. 使用多线程的优缺点: 优点: 1)适当的提高程序的执行效率(多个线程同 ...

  4. Linux进程管理(第二版) --进程管理命令

    进程管理命令 一.查看用户信息.5.15 分钟内的系统的,优先值越小,优先权越大 ] 1.nice 指定程序运行的优先级 格式 nice -n command 例如 nice -5 myprogrem ...

  5. web报表工具FineReport最经常用到部分函数详解

    之前分别列出来了finereport常用的文本.时间函数的解释,这里应广大朋友的要求,整理了finereport最常用到的一些函数! SUM SUM(number1,number2,-):求一个指定单 ...

  6. mac os x下的一些小技巧

    1显示swap空间: sysctl vm.swapusage 其中sysctl中有很多可以控制和查看的项,可以通过sysctl -A列举,另外可以通过man sysctl来查看. 而实际swap文件和 ...

  7. unix下各种查看“变量”的命令比较

    子程序只会继承父程序的环境变量,而不继承其自定义变量. env 查看所有环境变量 set 查看所有变量,包括环境变量和自定义变量 set 还可以给程序位置参数赋值: set 1 2 3 将1赋值给$1 ...

  8. Linux内核中断和异常分析(下)

    这节,我们继续上,中(以前的日志有)篇目进行分析,结合一个真实的驱动案例来描述linux内核中驱动的中断机制,首先我们先了解一下linux内核中提供的中断接口. 这个接口我们需要包含一个头文件:#in ...

  9. 程序员面试宝典3TH-ch7.2

    下列程序的输出结果是什么? #include "stdafx.h" #include <iostream> using namespace std; class A { ...

  10. javascript内置对象速查(二)

    Window对象 每个浏览器窗口或框架都对应于一个Window对象,它是随body或frameset元素的每个实例一起创建的对象. function status_text(){ window.sta ...