声明 :  数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础.

这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, 感恩.

Entity Framework (缩写EF) 是微软的一个框架。作用是处理面向对象与关系数据库的映射问题。

以往我们都是ADO.NET来访问数据库,connection.open() -> sql command ->  executenonquery | dataReader -> connection.close()等等

然后在把select结果装入DataTable | List<Class> 等等

写久了你会发现,这样的过程重复性很高,代码也不够整齐直观,很大的原因是关系数据库的思维和面向对象不太吻合造成的。

还有一种糟糕的情况是,每每要替换数据库时,语句有不兼容的问题, 可能需要批量替换.

Entity Framework 能让你在不需要写 sql 语句下,直接访问任何数据库获取资料。

所谓的映射就是把每个sql table 写出一个对应的 Class,column=属性, 然后写出它们之间的关系.这里的关系指的是范式(1对0, 1对1,1对多,多对多)

然后通过操作对象来同步数据库,有点MVC中 model -> view 的概念

这一篇先从安装配置说起吧.

参考 :

http://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html

我搞了大半天,没有一个很完整的结果,最终只能用 EF 6.1.1 ,配合 Mysql 5.x Code First 模式(class 和数据表是手写的),做不出 designer page 自动创建等。

我用 visual studio 2012 ultimate , 原先是EF 5.0 ,可以通过 NuGet去下载安装.

因为我用的是MySQL 所以必须安装 connetor/NET 6.9.3 . 下载 http://dev.mysql.com/downloads/connector/net/6.9.html

还有MySQL for visual studio . 下载 http://dev.mysql.com/downloads/windows/visualstudio/1.2.html

安装了之后把 dll copy 进bin里 . 一般在 : C:\Program Files\MySQL\MySQL Connector Net 6.9.3\Assemblies\v4.5\里面的dll file

MySql.Data.dll

MySql.Data.Entity.EF6.dll

MySql.Web.dll

然后配置一下web config

<configuration>
<connectionStrings>
<!--<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-theardensWeb-20141108125005;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-theardensWeb-20141108125005.mdf"/>-->
<add name="DB" providerName="MySql.Data.MySqlClient" connectionString="server=110.4.46.195;database=theardens;uid=keatkeat;password=001001;" />
</connectionStrings>

<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="MySql.Data, Version=6.9.3.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
<add assembly="MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
</assemblies>
</compilation>
</system.web>
<!--this system.data is important for exabytes, local no have is ok-->
<system.data>
<DbProviderFactories>
<clear />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,
Version=6.9.3.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
</DbProviderFactories>
</system.data>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
<!--<interceptors>
<interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
<parameters>
--><!-- for entity sql command record log--><!--
<parameter value="D:\vs2014\project\theardens\theardensWeb\EFLog\Log.txt" />
<parameter value="false" type="System.Boolean" />
</parameters>
</interceptor>
</interceptors>-->
</entityFramework>
</configuration>

这样就行啦!

Entity Framework with MySQL 学习笔记一(安装)的更多相关文章

  1. Entity Framework with MySQL 学习笔记一(查看EF和SQL请求日志)

    做数据库的一向来都会很注意请求的次数还有语句.这关系到很多性能的问题. 因此在使用EF的时候如果不了解原理很可能会搞出很糟糕的请求. 所以呢,在还没有搞懂EF前最基本的是你得"看得见&quo ...

  2. Entity Framework with MySQL 学习笔记一(乐观并发)

    在做项目时,通常我们对乐观并发有几种处理模式 1. 告诉用户此数据已被其他人捷足先登,更改了.你就算新一下重来吧. 2.直接把数据覆盖上去,我最大. 3.用被人的数据. 这里给出 code first ...

  3. Entity Framework with MySQL 学习笔记一(拦截)

    参考 : http://msdn.microsoft.com/en-us/data/dn469464.aspx EF 允许我们在发送SQL请求和返回数据时做一些拦截的动作 比如可以自定义写 log , ...

  4. Entity Framework with MySQL 学习笔记一(验证标签)

    直接上代码 [Table("single_table")] public class SingleTable { [Key] public Int32 id { get; set; ...

  5. Entity Framework with MySQL 学习笔记一(复杂类型 Complex Types)

    有时候我们希望在sql一个表里面的column, 一部分被分化成另一个class 典型的例子是 Address 直接看代码: [Table("member")] public cl ...

  6. Entity Framework with MySQL 学习笔记一(继承)

    基本上sql中要表示继承关系有3中方式. 分别是,1表继承(TPH),2表继承(TPC),3表继承(TPT) 1表 : Person id type name classroom office 1 s ...

  7. Entity Framework with MySQL 学习笔记一(关系整理版)

    1-1 设置 //DataAnnotation 1-1 | 1-0 table //SQLtable : member , columns : memberId, name //SQL basic l ...

  8. Entity Framework with MySQL 学习笔记一(insert,update,delete)

    先说说 insert 吧. 当EF执行insert时,如果我们传入的对象是有关联(1对多等)的话,它会执行多个语句 insert到多个表, 并且再select出来填充我们的属性(因为有些column默 ...

  9. Entity Framework with MySQL 学习笔记一(关系)

    这一篇说说 EF Fluent API 和 DataAnnotations 参考 : http://msdn.microsoft.com/en-us/data/jj591617.aspx http:/ ...

随机推荐

  1. yum puppet dashboard

    该Dashboard是一种运行在Rails上的Ruby应用程序,它还不是可以添加到系统版本中的程序包,但是我们可以从Puppet Labs以RPM或者DEB包的形式获得该软件.我们也可以选择从资源进行 ...

  2. python自动化测试遇到的零零碎碎

    1.需求: 提取xx.py中所有的函数名,形成一个类似于索引的参考. 解决方式: grep "def" *.py| awk '{print $2}'|awk -F ':' '{pr ...

  3. 怎样把.git版本控制文件夹放在项目目录下

    在上传本地代码到本地git库时,.git的存放目录不能放到项目根目录下(报错). 可以先把.git仓库选择其他保存路径,然后再copy到项目根目录下.

  4. A - Jungle Roads - poj 1251(简单)

    想必看这道题的时候直接看数据还有那个图就能明白什么意思吧,说的已经很清楚了,每个点都有一些相连的点和权值,求出来如果连接所有点,最小的权值是多少,赤裸裸的最小生成树... ************** ...

  5. WINDOWS UPDAET

      相信各位或多或少都知道 Windows Update 功能,Windows 有了它就可以随时升级到最新的程序版本,同时对防止安全威胁也能起到很大的作用 在 Windows 7 中,安装完成首次运行 ...

  6. swift - if let Optional 语法

    var optionalString: String? = "facial"; var greeting = "hi"; if let name = optio ...

  7. Android SHA1与Package获取方式

    获取应用包名 打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应用包名. 如下图所示,红框中的内容: 获取 Sha1 值 开发模式(d ...

  8. Com编程入门——什么是COM,如何使用COM

    本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念.内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件.本文不包括如何编写自己的COM对象和接口. CO ...

  9. jpeg和gif已经影响互联网发展进程了,他们应该被历史淘汰了!!!

    本人发现.传统的图片格式已经不适应互联网时代了!!!,故本人发起定义一种新的图片格式.后缀名为 .gnet 互联网上的图片大多有这几种来源.微博上传,视频截图,网络编辑人上传等,以眼下的技术.这些图片 ...

  10. Linux安装应用程序对程序文件owner/group和执行程序帐号设置的规范做法

    本文原文链接:http://blog.csdn.net/bluishglc/article/details/24384189 转载请注明出外! 本文面向的是在server环境下对已编译.自解压应用程序 ...