Entity Framework with MySQL 学习笔记一(安装)

声明 :  数据库是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 的概念

 

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

我搞了大半天,没有一个很完整的结果,最终只能用 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 

  <connectionStrings>   
    <add name="someNameYourLike" providerName="MySql.Data.MySqlClient" connectionString="server=110.100.45.100;database=databaseName;uid=username;password=password;" />
  </connectionStrings>
    <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" />     
      </assemblies>
    </compilation>
  <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>
  </entityFramework>

这样就行啦!

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。