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>
这样就行啦!
Entity Framework with MySQL 学习笔记一(安装)的更多相关文章
- Entity Framework with MySQL 学习笔记一(查看EF和SQL请求日志)
做数据库的一向来都会很注意请求的次数还有语句.这关系到很多性能的问题. 因此在使用EF的时候如果不了解原理很可能会搞出很糟糕的请求. 所以呢,在还没有搞懂EF前最基本的是你得"看得见&quo ...
- Entity Framework with MySQL 学习笔记一(乐观并发)
在做项目时,通常我们对乐观并发有几种处理模式 1. 告诉用户此数据已被其他人捷足先登,更改了.你就算新一下重来吧. 2.直接把数据覆盖上去,我最大. 3.用被人的数据. 这里给出 code first ...
- Entity Framework with MySQL 学习笔记一(拦截)
参考 : http://msdn.microsoft.com/en-us/data/dn469464.aspx EF 允许我们在发送SQL请求和返回数据时做一些拦截的动作 比如可以自定义写 log , ...
- Entity Framework with MySQL 学习笔记一(验证标签)
直接上代码 [Table("single_table")] public class SingleTable { [Key] public Int32 id { get; set; ...
- Entity Framework with MySQL 学习笔记一(复杂类型 Complex Types)
有时候我们希望在sql一个表里面的column, 一部分被分化成另一个class 典型的例子是 Address 直接看代码: [Table("member")] public cl ...
- Entity Framework with MySQL 学习笔记一(继承)
基本上sql中要表示继承关系有3中方式. 分别是,1表继承(TPH),2表继承(TPC),3表继承(TPT) 1表 : Person id type name classroom office 1 s ...
- Entity Framework with MySQL 学习笔记一(关系整理版)
1-1 设置 //DataAnnotation 1-1 | 1-0 table //SQLtable : member , columns : memberId, name //SQL basic l ...
- Entity Framework with MySQL 学习笔记一(insert,update,delete)
先说说 insert 吧. 当EF执行insert时,如果我们传入的对象是有关联(1对多等)的话,它会执行多个语句 insert到多个表, 并且再select出来填充我们的属性(因为有些column默 ...
- Entity Framework with MySQL 学习笔记一(关系)
这一篇说说 EF Fluent API 和 DataAnnotations 参考 : http://msdn.microsoft.com/en-us/data/jj591617.aspx http:/ ...
随机推荐
- [转载]Android相关开发网站
my: Android 开发官方文档国内镜像-踏得网: http://wear.techbrood.com/index.html 转载自: http://my.oschina.net/luforn/b ...
- js的简单模板解析
在编程中总是会遇见很多动态生成的东西,一般我们都是通过简单的html拼接起来的 function createHtml(name, phone, addr, email, imageSrc){ var ...
- 【ArcGIS 10.2新特性】Geodatabase 10.2 常见问题
地理数据库技术一直以来都是ArcGIS的基础技术.为充分使用ArcGIS的全部功能则需要把数据存储在Geodatabase当中.Geodatabase是一个综合性的信息模型,它可以支持存储几乎任意类型 ...
- 索引时利用K-邻近算法过滤重复歌曲
最近一直在做公司搜索的优化与维护,做完索引和搜索的分离之后,又有一个新需求,因为做的是歌曲方面的搜索,所以在数据库中有多个同歌名,同演唱者的的数据,这样在用户搜索的时候,会出来一大堆不同版本的歌曲,影 ...
- rk3288 ov8858 camera移植
平台:瑞芯的rk3288 SDK:4.4/5.0/5.1 作者:fulinux *****本文同意转载.只是请注明出处:http://blog.csdn.net/fulinus**** rk3288的 ...
- int? 类型数据
在数据库操作中,会遇到在int的单元格恰好为NULL值的情况,这个时候我们可以直接判断是否为null然后进行赋值,有人就想那我刚好用一下:?表达式不就好了: ) ? ); 这时候编译器会报错,原因就是 ...
- MyEclipse设置默认的文档注释
- HTML CSS样式基础
一.css 1.什么是css? Cascading Style Sheet 级联样式表 改变样式的一个工具,说白了,就是为了让我们的页面好看, HTML底层封装了css这样一个工具. 2.怎么使用cs ...
- div整体布局分析
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Hyper-V的三种网卡
External ======= 虚拟机和物理网络.本地主机都能通信 Internal ======= 虚拟机之间互相通信,并且虚拟机能和本机通信 Private ======= 仅允许运行在这台物理 ...