.Net使用对象关系映射框架Entity Framework操作数据库及其内容

        以往,如果在程序中需要对数据库及其内容进行操作,我们都需要手动去写CURD的代码,很累,一大堆重复代码写的心情不爽。直到某一天发现了Object-Relational Mapping(对象关系映射,简称ORM)框架Entity Framework,感谢微软又做了一件给码农减压的事情。

        说了这么多,一些人可能对Entity Framework到底能够干什么还不是很清楚, 简单的说就是从此不用再写CURD的代码就可以直接操作数据库了,ORM使类提供自动化CRUD,使开发人员从数据库API和SQL中解放出来,还需要更深入的了解请移步What is Entity Framework

       本篇文章只是一步步的写一个简单的例子来说明到底怎么去用Entity Framework(下文中简称EF)。关于EF的介绍的文章很多先辈们已经写的很清楚了,EF支持三种开发模式,Code First、Database First、Model First。本文将采用Database First的方式描述一个完整的使用实例。

       1. 建立数据库。首先打开VS2015(2012以上版本都差不多),View-》Server Explorer,在Server Explorer视图中点击Data Connections右键Add Connection...将弹出如下Add Connection界面。需要配置Server name为:(localdb)\ProjectsV13,然后设置database name为你要建立的数据库的名称,最后点击ok创建数据库完成。其中server name这个值针对不同的localdb版本会不同,要查看你装的是哪个localdb版本只需要点击View-》SQL Server Object Explorer,在弹出的界面中会显示你所安装的localdb版本,找到对应的值即可。

Add Connection界面图

     2.建立数据库表。第1步我们已经建立了localdb数据库,现在需要定义我们要使用的数据库表。展开新建的数据库,右键Tables,选择Add new table,然后会出现表格设计界面。我们可以手动设置表格的列名称和类型,完了之后需要在T-SQL里面把表名称给修改成我们定义的表名称,因为默认的表名是Table。完整的T-SQL代码如下,可以对照一下。

CREATE TABLE [dbo].[User]
(
    [Id] INT NOT NULL PRIMARY KEY, 
    [UserName] VARCHAR(50) NULL, 
    [Age] INT NULL
)

然后点击左上角的Update,稍等一会点击Update Database。表格创建完成了,数据库下面的Tables目录却要等一会才能刷新出新建的表,可以手动右键refresh一下就立即出来了。然后我们在新建好的表里面随便插入两条数据,后面会需要样例数据。编辑表格数据的方法是右键User(表名),点击Show table data,编辑完成数据,点击左上角刷新按键刷新一下即可。

   3.新建项目工程。为了简单,这里建立一个控制台程序。File-》new-》Project...-》Console Project。

   4.从数据库自动生成对象文件。Project-》Add new item-》Data-》ADO.Net Entity Data Model,在Name中我们输入EFContext(可随便定义)。然后点击Add。在弹出的界面中选择Code First from database,点击Next。弹出Choose Your Data Connection的界面,点击Next会弹出Choose Your Database Objects and Settings界面,勾选Tables,然后点击Finish。可以看到我们项目中会自动生成两个类文件EFContext.cs和User.cs,并修改了App.config文件。如果你细心会发现在App.config文件中增加了一个ConnectionStrings的配置项内容。

   5.现在就可以在程序中操作数据库了。打开Program.cs文件,在Main方法内插入操作代码,完成的文件代码如下所示。

class Program
    {
        static void Main(string[] args)
        {
            using (EFContext efContext=new EFContext())
            {
                var users = efContext.User;
                foreach(var user in users)
                {
                    Console.WriteLine("userName {0},Age {1}",user.UserName,user.Age);
                }
            }
            Console.ReadKey();
        }
    }

是不是神奇的打印出了表格中的内容。可是我们一行sql代码都没有写,这里的示例只是简单的实现了读数据库的内容,而且是先建立数据库模式(Database First),自己去发现更多更神奇的功能吧。

总结:Entity Framework的功能很强大,建议你花一些时间了解下该框架。一篇很好的前辈写的Entity Framework 基础 很值得看看。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值