前言

使用过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. Linux Shell 命令--tr

    tr        用来从标准输入中通过替换或删除操作进行字符转换                -c或--complerment 取代所有不属于第一字符集的字符.                -d ...

  2. 【一天一道LeetCode】#30. Substring with Concatenation of All Words

    注:这道题之前跳过了,现在补回来 一天一道LeetCode系列 (一)题目 You are given a string, s, and a list of words, words, that ar ...

  3. 通过CSS显示垂直文本

    原文链接: CSS Vertical Text 原文日期: 2014年03月18日 翻译日期: 2014年3月22日 翻译人员: 铁锚 示例地址: http://davidwalsh.name/dem ...

  4. Xshell Linux 主要命令

    1.   查看当前路径 pwd 2.列出当前目录的文件 ls   列出所有文件或者文件夹 ls  *abc  列出以abc开头的所以文件 ls –l   列出所以文件及其详细详细 3.进入目录 cd  ...

  5. 【Visual C++】游戏编程学习笔记之一:五毛钱特效之透明和半透明处理

    本系列文章由@二货梦想家张程 所写,转载请注明出处. 本文章链接:http://blog.csdn.net/terence1212/article/details/44163799 作者:ZeeCod ...

  6. 【58】Spring总结之注解(2)

    启用注解配置: 1.context:annotation-config 该配置表示启用注解. 2.context:component-scan base-package="." 该 ...

  7. ARM linux常用汇编语法

    汇编语言每行的语法:     lable: instruction  ; comment 段操作: .section           格式: .section 段名 [标志]     [标志]可以 ...

  8. linux上部署rmi+memcache服务

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/50020437 最近在学习linux上搭建Rmi+Memca ...

  9. React Native Android开发环境配置

    近些年,Web前端甚是火爆,火爆程度堪比我毕业时的移动端开发一般.随着JavaScript的火爆,移动端也不安分了起来,ReactNative就异军突起了,几乎要做到"一次学习,四处开发&q ...

  10. Java IO学习--(四)网络

    Java中网络的内容或多或少的超出了Java IO的范畴.关于Java网络更多的是在我的Java网络教程中探讨.但是既然网络是一个常见的数据来源以及数据流目的地,并且因为你使用Java IO的API通 ...