今天为了安装VS2017,结果C盘空间不够,只能把电脑重装了一下,一搞就是一天。说句良心话,VS是真的很大~~~。好了,废话不多说,开始记录今天的内容。
EF,全称为Entity Framework,字面意思就是实体框架。那这个是个啥呢?
C#与数据库交互的方式有好几种,昨天的文章使用的是传统方式--ADO.NET,EF是在ADO.NET的基础上的一种更高层的封装方式。
说了一大通,其实并不是很好理解。其实呢,用大白话来说就是先设计好数据库和表,然后通过EF这个东西,将表生成同名的一个类(C#),类中的属性和类型与数据库的表是一一对应的,也就是说表中的字段叫name ,varchar 类型,生成的属性就叫name ,对应string 类型。然后现在要做的不是通过SQL语句,而是通过面向对象的思想写C#代码对数据库进行操作。
理论说完了,接下来搞一下实践。
1、打开数据库,先创建一个表:
这里需要注意的是最好在建表的时候给表指明主键,否则在使用EntityFramework时不一定会生成实体模型。虽然不设主键也不会有问题,但是规范起见还是设一个吧!
2、创建一个C#项目,在项目上右键添加-新建项,找到ADO.NET实体数据模型,顺便给它取个名字。
3、点击添加后,在弹出窗口上选择来自数据库的Code First,点击下一步即可。
4、然后会出现下面的界面,点击新建连接,在弹出的窗口数据源中选择Microsoft Sql Server,点击继续
5、根据提示选择和填写相关信息,其实就是配置连接数据库的字符串啦,只不过不需要我们自己手动写了。以防万一可以测试连接一下哦~~
6、点击是,并点击保存到App.Config中。下一步
7、选择自己想生成的表。
耐心等待生成就好。在实际使用中建议大家创建一个文件夹用于管理所有的实体模型,而不是像我这样随便放放的~~
UserInfo.cs就是UserInfo表对应的实体模型。有兴趣可以研究一下这两个类中的代码,现阶段先实现了再说,毕竟实现了有成就感,然后就会发现EF这个东西是真好用啊,根本不想用ADO.NET写SQL语句啦····
到目前,所有的准备工作做好了,接下来要用它了。。。
运行调试一下,顺便观察一下数据库,发现没毛病,又一次一遍过了。嘿嘿~~~
顺便记录一下今天启动Sqlserver遇到的问题。安装成功后发现登录时报错,提示说与Sql Server建立连接时出现与网络相关的或特定于实例的错误。始终无法登录数据库。一开始还以为服务没开启,实际上确实是没有开启的,这是因为在安装VS2017时给我安装了一个高版本的SQL SERVER2016,导致进不去低版本的SQL SERVER,这时需要打开控制面板,将 Microsoft SQL Server 2016 Express LocalDB找到并卸载了,这时打开SQL 2008的配置管理器就可以正常启动SQL2008的服务了。