zoukankan      html  css  js  c++  java
  • 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 的概念

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

    参考 : 

    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>

    这样就行啦!

  • 相关阅读:
    Python3高级基础(2)
    Python3面向对象基础
    Python3学习策略
    Python3基础之基本问题
    Python3基础之字典
    (转)修改IIS默认的localhost名称
    (转)IIS5.1的安装配置并发布ASP.NET网站
    (转)怎样查看局域网中自己的IP地址和其他电脑的IP地址?
    (转)sql中 in 、not in 、exists、not exists 用法和差别
    (转)union和union all的区别
  • 原文地址:https://www.cnblogs.com/keatkeat/p/3995599.html
Copyright © 2011-2022 走看看