CodeFirst是EntityFramework 4.1后新增的一种映射方式,在这种方式下,开发人员只需要编写代码,由ORM框架自动动创建模型和数据库,数据库则可看作类似于XML一样序列化的方式,非常简洁(由于开发人员可以无需关心数据库的具体结构,最初也有叫做CodeOnly的)。
使用之前,必须先引用EntityFramework这个DLL,我们可以直接在项目中,引用(右键)->管理NuGet程序包->联机中搜索EntityFramework,然后安装即可。
下面新建几个测试Model:
运行性代码:
最后我们运行下程序,结果如下:
这时,我们可以查看新增的数据库:
一个简单的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检测到模型间有一对多的关系,会自动在相应表中生成外键。
下载说明
☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,
☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!
☉唯一站长QQ:1004003180 [人格担保-本站注重诚信!]
☉购买建议E-mail:1004003180@qq.com 源码收购 E-mail:1004003180@qq.com
☉本站文件解压密码 【文章内都自带解压密码,每个密码不同!】