游戏技术文章

Code First简单的认识

时间:2017-3-1 20:22:02  作者:棋牌资源网  来源:棋牌资源网  查看:8948  评论:0
内容摘要:一、什么是Code FirstCodeFirst是EntityFramework 4.1后新增的一种映射方式,在这种方式下,开发人员只需要编写代码,由ORM框架自动动创建模型和数据库,数据库则可看作类似于XML一样序列化的方式,非常简洁(由于开发人员可以无需关心数据库的具体结构,...

一、什么是Code First

CodeFirst是EntityFramework 4.1后新增的一种映射方式,在这种方式下,开发人员只需要编写代码,由ORM框架自动动创建模型和数据库,数据库则可看作类似于XML一样序列化的方式,非常简洁(由于开发人员可以无需关心数据库的具体结构,最初也有叫做CodeOnly的)。

二、建立一个简单的Code First示例

使用之前,必须先引用EntityFramework这个DLL,我们可以直接在项目中,引用(右键)->管理NuGet程序包->联机中搜索EntityFramework,然后安装即可。

Code_First简单的认识

下面新建几个测试Model:

Code_First简单的认识 Person Model
Code_First简单的认识 SchoolContext Model

运行性代码:

Code_First简单的认识 Run Code

最后我们运行下程序,结果如下:

Code_First简单的认识

这时,我们可以查看新增的数据库:

Code_First简单的认识

一个简单的Code First Demo,就这样成功的创建了。

当然,实际上远远没这么简单,本节的案例只是最简单的。下一节我们将会更多的讨论其中的细节点。

Tip(CodeFirst映射数据库的一些基本原则):

1)数据库名:当没有显示设置数据连接的时候,默认的数据库是:.\SQLEXPRESS。如果本地没有SQLEXPRESS,EF会尝试LocalDb ((localdb)\v11.0) .\SQLEXPRESS ,这个数据库包含在VS2012中。数据库的名称一般是DbContext的“命名空间.类名”,本例中是CodeFirstTest.SchoolContext。

PS:默认情况下,vs2010 包含 SQLExpress,vs2012 包含LocalDb。安装期间,EntityFrameworkNuGet 包会检查哪个数据库服务器可用。随后 NuGet 包将设置按约定创建连接时 Code First 所使用的默认数据库服务器,以此更新配置文件。如果 SQL Express 正在运行,将使用它。如果 SQL Express 不可用,则 LocalDb 将注册为默认数据库。如果配置文件已包含默认连接工厂设置,则不会更改该文件

2)表名:表名默认为模型类名的复数形式,并且每个表都使用dbo构架创建。这里生成的就是dbo.People。

PS:这里可能有人会问,为什么不是Persons呢?因为Person的复数形式通常用People表示

3)主键:Code First会默认将以类似Id结尾来命名的属性当作主键,如ID,Id,本例中的ID都自动设置为主键。如果该属性是int类型,Code First会在数据库中默认将该列设置为自增长。

4)数据类型:在SQL Server中,字符串默认映射成nvarchar(max),byte[]映射成varbinary(max),bool映射成bit,decimal映射成decimal(18, 2),float映射成float。同时因为bool,decimal,float等是值类型,不能为给他们分配Null值。所生成的数据库会要求对应的列非空。

5)外键:Code First检测到模型间有一对多的关系,会自动在相应表中生成外键。


I Hear And I Forget. 
I See And I Remember. 
I Do And I Understand.
标签:CodeFirst简单的认识 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2024 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved