.Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程相关的知识,希望对你有一定的参考价值。

Linq的好处非常明显,不仅把数据库访问层真正做到面向对象,而且也可以把系统的权限封装到数据库访问层去了。

微软目前稳定的Linq框架是Entity Framework 6.1,我自己编写了一个数据库工具Mr.E,可以用来设计数据库结构,并且把数据库结构编译成Entity Framework的对象,可以说是自动化的code first模式。

技术分享

Mr.E运行于.Net 4.5版本,大概功能如下:

1.网络版本,支持多人同时设计数据库;

2.目前支持Sql Server、MySql、Sqlite数据库;

3.支持数据库结构更新;

---你的项目发布后,如果再修改数据库结构,可以使用Mr.E,对已经发布的数据库进行结构的更新。

4.支持数据库类型变更;

---比如原来是Sql Server数据库,可以在开发中途变更为mysql数据库,而不需要变更代码。

5.支持一个数据库结构,多个数据库类型;

---比如你的项目,它分为网络版和单机版,网络版使用Sql Server数据库,单机版使用Sqlite数据库,那么你可以一直以Sql Server类型进行数据库结构设计,到发布的时候,把结构更新到另一个sqlite数据库上即可。

6.关闭EF的数据跟踪,提高性能

7.支持类似触发器的代码,通过代码,可以捕捉全局数据表的insert update delete事件;

---这样,相当于可以用c#去写触发器了

8.支持定义索引

9.支持级联删除,级联删除的数据同样支持7里面的特性

 

需要Mr.E源码的朋友可以加我qq索取。(896872647)

安装步骤:

1.配置Mr.E的IIS服务站点

点击下载ECWeb.rar文件,解压后,在IIS创建一个网站执行它,端口可以任意定义,例如:666,应用池必须是.Net 4.5或以上版本

2.下载客户端

下载Mr.E.rar文件,解压后,直接运行EJClient.exe,弹出登录窗口,输入上一步iis里面配置的网站路径,用户名默认:sa,密码是:1

技术分享

3.创建数据库

首先,需要新建一个工程,点击菜单【project】,新建一个工程

然后,展开新建的project,在Databases点击右键,新建一个数据库

技术分享

注意:如果是sqlite类型数据库,如上图,数据库放在F:\\SqliteLinqTest,那么必须确认IIS有读写F:\\SqliteLinqTest文件夹的权限,否则无法创建

3.创建数据表

 先在【数据模块】那里点击右键,添加一个目录,然后在目录下面添加一个模块

技术分享  -----> 技术分享

然后双击“基本信息”模块,在它的区域里面去添加数据表。这样子,数据表就可以分类管理,不像sql server那样,所有表都列在一起

技术分享--->技术分享

4.编译数据库,生成dll文件

  右键点击TestDB->【编译】,生成它的dll文件。

5.在代码中访问数据库

  下载公用dll文件EntityDB.rar

新建一个.Net工程,引用EntityDB.dll、EntityFramework.dll、刚才生成的TestDBDataObjects.dll、.Net自带的System.Data.Linq

项目编译后,需要把EntityDB.rar里面所有dll,包括x86 x64文件夹都拷贝到运行目录,bin\\Debug下面,那些都是运行时所需要的

下面是C#访问数据库的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LinqTest1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            using (var db = new Test.DB.TestDB(@"data source=""F:\\SqliteLinqTest\\TestDB""", EntityDB.DatabaseType.Sqlite))
            {
                //开始事务
                db.BeginTransaction();
                try
                {
                    //添加数据
                    var user = new Test.UserInfo();
                    user.UserName = "张三";
                    user.Password = "123";
                    db.Update(user);
                    Debug.WriteLine("张三的id是" + user.id);


                    //更新数据
                    var zhangSan = (from m in db.UserInfo
                                    where m.UserName == "张三"
                                    select m).FirstOrDefault();
                    zhangSan.Password = "678";
                    db.Update(zhangSan);


                    //删除数据
                    var data = db.UserInfo.FirstOrDefault(m => m.UserName == "李四");
                    if (data != null)
                    {
                        db.Delete(data);
                    }


                    //提交事务
                    db.CommitTransaction();
                }
                catch
                {
                    //回滚事务
                    db.RollbackTransaction();
                    throw;
                }
            }

        }
    }
}

从代码中可以看到,因为我关闭了EF的数据跟踪,所以,数据的 insert update delete等,需要调用db.Update() db.Delete()去实现,不能用EF自带那种方式去做

以上是关于.Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程的主要内容,如果未能解决你的问题,请参考以下文章

.Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程级联删除和触发器

.Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程枚举类型的字段

.NET for Apache® Spark? 开源大数据分析工具

Mr.E 的用户管理

.NET Core Grpc 实现通信

5个经常使用的开源聊天应用