前言

使用过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. 海量数据挖掘MMDS week1: MapReduce

    http://blog.csdn.net/pipisorry/article/details/48443533 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  2. Python学习笔记 - 迭代Iteration

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- d = {'a': 1, 'b': 2, 'c': 3} for key in d: # 默认迭代是key ...

  3. 报表打印错误:Forcing NLS_NUMERIC_CHARACTERS to: '.,' for XDO processing

    HDSP0004 module: HDSP: 凭证打印 +----------------------------------------------------------------------- ...

  4. Material Design之视图状态改变

    视图状态改变是通过StateListAnimator动画集来改变View的状态的,它可以使View在不同状态下发生不同的变化,如下是在drawable目录下定义一个StateListAnimator: ...

  5. 关于synchronized

    如果用synchronized修饰一个类成员方法A,那么就不会出现下面的情况: 同时多个线程访问这个类的A方法. 当然如果还有一个方法B,它没有被synchronized修饰,那么A方法与B方法是可以 ...

  6. Dijkstra算法 c语言实现

    Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最优 ...

  7. MongoDB 3.0新增特性一览

    转自:http://blog.sina.com.cn/s/blog_48c95a190102vedr.html 引言 在历经版本号修改(2.8版本直接跳到3.0版本)和11个rc版本之后,MongoD ...

  8. mysql 无法插入中文

    MySQL数据库默认编码已经是utf8了, default-character-set = utf8,可是向数据库中表中插入中文时,却老是出现 ....\xB5\xA5\xD1\xA1 for col ...

  9. Java数据类型之byte、char

    Java 有8中基本数据类型,分别是byte.int.long.char.float.double.boolean. 1.byte.char的简单介绍 有时候总是搞不清byte.char,所以就现在好 ...

  10. java常用数据库连接池 (DBCP、c3p0、Druid) 配置说明

    1. 引言 1.1 定义 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库 ...