发表在个人博客:http://starlight36.com/post/querying-mysql-with-ef html
Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架。相比于LINQ TO SQL,EF框架具备很明显的优点: mysql
Entity Framework的架构设计如图: sql
(图片来源自MSDN) 数据库
Entity Framwork已经成为微软推荐的ORM方案。接下来咱们将介绍如何使用EF框架访问MySQL数据库。 c#
首先,为了使Visual Studio支持MySQL,须要安装MySQL Connector/Net,能够从这个地址找到下载: 架构
http://dev.mysql.com/downloads/connector/net/6.6.html#downloads 框架
我选用的是6.6.5版本。最新版是6.7.4,但安装包里面彷佛缺乏了Visual Studio集成支持。 工具
安装过程很简单,按照向导步骤下一步便可。 post
在Visual Studio项目中,右键新建项,打开新建项对话框,选择添加ADO.NET实体数据模型: spa
打开实体数据模型向导:
选择数据库链接。若是现有的链接中没有,请点击新建链接:
点击继续按钮便可设置MySQL数据库的链接信息:
建立链接完成后,便可选择要映射的对象:
勾选要映射到模型中的表。推荐勾选“肯定所生成对象名称的单复数形式”,不勾选“在模型中加入外键列”。
在生成模型时,VS会自动根据数据库的外键关系,为实体对象建立相应的关联。勾选“在模型中加入外键列”则会把外键列也生成到字段中。
点击完成便可完成模型的生成。打开刚刚生成的*.edmx文件,能够对生成的模型进行进一步调整。
至此,生成映射模型的工做即告完成。
下面给出一个简单的CRUD的例子:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EFDemo { class Program { static void Main(string[] args) { Query(); Insert(); Query(); Update(); Query(); Delete(); Query(); } /// <summary> /// 查询 /// </summary> static void Query() { var context = new TestEntities(); var users = from e in context.Users select e; foreach (var u in users) { Console.WriteLine(u.Name); Console.WriteLine(u.Pass); Console.WriteLine("-------------"); } Console.WriteLine("====================="); } /// <summary> /// 插入 /// </summary> static void Insert() { var context = new TestEntities(); User user = new User(); user.Name = "test002"; user.Pass = "test123"; context.Users.AddObject(user); context.SaveChanges(); } /// <summary> /// 更新 /// </summary> static void Update() { var context = new TestEntities(); var user = (from e in context.Users select e).First(); user.Pass = "123"; context.SaveChanges(); } /// <summary> /// 删除 /// </summary> static void Delete() { var context = new TestEntities(); var user = (from e in context.Users where e.Name.Equals("test002") select e).First(); context.Users.DeleteObject(user); context.SaveChanges(); } } }