热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.Net开源数据库设计工具Mr.EForLinq(EF6.1)教程(一)

Linq的好处非常明显,不仅把数据库访问层真正做到面向对象,而且也可以把系统的权限封装到数据库访问层去了。微软目前稳定的Linq框架是EntityFramework6.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里面的特性

10.修正官方sqlite的linq dll,对于string.contains("中文")不准确的问题,也就是用中文关键字去搜索字段的值,返回的结果不正确

 

我文章里面提到的下载项,都在http://www.cnblogs.com/IWings/p/5814468.html 因为会不时更新,上面有显示上次更新的时间,大家可以及时更新

需要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以及和它同目录的所有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自带那种方式去做


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 目录1、将mysql数据导出到SQL文件中(数据库存在的情况)2、将现有的sql文件数据导入到数据库中(前提数据库存在) 3、利用Navicat导出SQL文件和导入SQL文件1)从 ... [详细]
  • NetBPM的安装还是比较简单的,有比较详细的文档。1.当然是先下载运行程序了,netbpm-0.8.3.1.zip,官方网站ÿ ... [详细]
  • 在windows7中安装sqlserver2005中碰到的问题1.iis检测失败的解决办法控制面板-》程序和功能-》打开或关闭windows功能-》打开IISFeatures,点左 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • ASP.NET MVC 小牛之旅3:Routing——网址路由
    网址路由(Routing)在ASP.NETMVC中有两个主要用途,一个用途是匹配通过浏览器传来的HTTP请求,另一个用途则是响应适当的网址给浏览器。3.1匹配通过浏览器传来的HTT ... [详细]
author-avatar
iuang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有