ef mysql modelfirst_Entity Framework(EF的Model First方法)

本文介绍了如何使用Entity Framework的Model First方法在Visual Studio 2013中创建数据库表格,涉及创建数据库、设计实体、建立关系以及生成数据库的过程。在Model First中,更新模型会删除原有数据并重建表格,因此需谨慎操作。
摘要由CSDN通过智能技术生成

EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架。同其它ORM(如,NHibernate,Hibernate)一样,

一是为了使开发人员以操作对象的方式去操作关系型数据表。

二是为了屏蔽底层不同厂商的数据库,开发人员面向ORM框架编写数据的CRUD(Create,Retrieve,Update,Delete)操作,再由ORM框架将这些操作翻译成不同数据库厂商的语言。

从EF 4.X开始支持三种构建方法:1. Database First方法。2.Model First方法。3.Code First 方法。

c1782a17e883db5c199765f56d774aae.png

本次测试以Visual Studio2013 / MS Sql Server2012 / Entity Framework 6.X 测试EF

Model First Demo(Models修改了,中间不能直接映射数据库)

【Model First 导航属性:不需要自己创建,是表之间有了关联之后,自己就会创建出来】

//注意:更新Model到数据库时会删除原来表格和数据,再创建新的表格

关键:关系的创建

1: 创建空模型的实体数据模型,

2: 创建实体、关系

3: 关系包括:1:1,1:n,m:n (建议不要使用1:1,性能低(不会延迟加载,添加时必须同时创建两个对象),可以使用1:m的方式进行代替处理)

关系m:n,有一张中间表,左:1:m 关系,右:1:n 关系,在数据库中存在这张中间表,在edmx中不存在(可以使用导航属性操作m:n关系)

4: 可以生成导航属性,也可以不生成

1:打开SQLServer2012,使用下面SQL文本创建MyFirstModelFirstEF数据库(Model First EF不会帮我们创建数据库,只会帮我们创建表。所以我们要事先把数据库建立好)

create databaseMyFirstModelFirstEFon primary(

name='MyFirstModelFirstEF.mdf',--修改为自己电脑上SQL DB路径

filename='D:\yangZ_MSSQL\MyFirstModelFirstEF.mdf',

size=5mb,

maxsize=100mb,

filegrowth=10%)log on(

name='MyFirstModelFirstEF_log.ldf',--修改为自己电脑上SQL DB路径

filename='D:\yangZ_MSSQL\MyFirstModelFirstEF_log.ldf',

size=2mb,

maxsize=100mb,

filegrowth=5mb

)go

2:新建ConsoleApplication应用程序

37676d33c3251eac1bf1d80d327fa8ff.png

3:在EFDataBaseFirstDemo上 右键-->新建-->新建项-->数据-->ADO.NET实体数据模型,选择空模型,然后点击完成

15004d40268ab97c2185e272fb305aa3.png

4:此时会自动打开**.edmx设计界面(若没有打开,直接在项目解决方案中,双击**.edmx文件)

ba44c553367717bce741166731796908.png

3829d47757dc1fbfcb541b021a8244a0.png 

2f0a96796fe90d9aaf0a9197e224e80f.png

5:通过edmx设计界面, 我们把上次Database First Demo中的CustomerInfo/OrderInfo表格生成出来,如下图所示,并导入数据库

6b54f356cf8b91ce04f1e31f055e4fbd.png

6:在edmx设计页面,一种可以通过工具箱,拖拽设计页面,另外一种直接右键-->新增来设计表格,本次直接通过右键-->新增来设计表格

6.1:设计CustomerInfo表格,在**.edmx设计界面空白处,直接右键-->新增-->实体,填写相关内容(在这里可以设置主键id为Identity,默认为自增长为1,这个在Model First设计界面没办法修改默认自增长值)

8ca14e441c04d13d63782aae027beafa.png 

a936b474ab113412b6e0ad6e9d35f307.png

此时,选中id属性,鼠标右键-->属性(或者直接F4),可以打开属性界面,在属性界面可以继续修改刚刚创建的字段

5e5f03bfd3692cc85094fdc9ae8aad4d.png

6.2:继续新增customerName string类型/customerDate datetime类型

选中CustomerInfo设计界面,右键-->新增-->标量属性,修改name==customerName,选中刚刚新增的customerName字段,修改属性(F4)

348d56788af5533691d271b3c0155f4e.png 

25dd008ef4d150c25e3f0c79061c78d1.png

a174c1c50fc8e169900617526804f332.png

6.3:新增customerDate datetime类型字段,右键-->新增-->标量属性,修改name==customerDate,选中刚刚新增的customerDate字段,修改属性(F4)

2cff9575dc47b143eba9af52f34e0a27.png   

1cbabaf6fe6516a0896307171da4a062.png

至此CustomerInfo数据库字段已经创建完毕,OrderInfo表格和字段(id[int],orderName[nvarchar(100)],customerId[int,foreign key])创建类似

5d076917d75bb4d5a51a7607610afbad.png

6.4:把CustomerInfo和OrderInfo表格建立关联关系(在**.edmx空白处,右键单击-->新增-->关联)

82f5d017382f43dd9496cf4cc08c3a3f.png

a49928e60ebd7c78e5aaa046b0e46824.png 

aad8623192f1d12448818bf9e15f3951.png

最后整体**.edmx实体图显示如下:

70153dff2f28e59b79d855b1948f21bc.png

7:此时,数据库中没有数据表。我们在edm设计器上空白地方,右键-->根据模型生成数据库

[Model First EF不会帮我们创建数据库,只会帮我们创建表。所以我们要事先把数据库建立好]

b8604e8a8e8a9f266b692b9a5d67ece8.png

3a131cce4901a6ada26c38694bbedd09.png

点击下一步,如下图,生成对应的SQL文本

4470c31ccb9ddeaf843f1c4073b34636.png

点击完成(有可能出现下面的警告),点击确定之后,如下图所示:

e333634a79de9bac09169dbafee9c60f.png

acc53bb9f113bf2dab58167651384fa2.png

当连接服务器成功以后,点击:执行脚本。则会在数据库MyFirstModelFirstEF中生成相应的数据表

080b3d78667879cf02781fd9d1623d72.png

643ed7eb85eeed8f9b1d8e9ddfb3a0e9.png

60081a6c57ee5c61625b15c9d17c5c48.png    

caf745528ff55bf55eb05fb6f233e45a.png

最后ModelFirstEFDemo整体结构如下所示:

98f5bab804a57425388159dc0304e2aa.png

最后在ConsoleApplication中做一个增加数据的Demo

DbContext context = newModel1Container();//使用导航属性 新增CustomerInfo和OrderInfo数据

CustomerInfo customer = newCustomerInfo()

{

customerName= "ModelFirstTestOne",

customerDate=DateTime.Now

};

customer.OrderInfo.Add(newOrderInfo()

{

orderName= "ModelFirstTestTwo"});

context.Set().Add(customer);

context.SaveChanges();

此时数据库数据如下所示:

40e9402b1fa9bfcfe4506f07c67964fd.png

参考文章:

Ps:使用EF Model First时,若修改Model结构,或者字段,需要在**.edmx中做如下操作

重复第7步骤:此时,数据库中没有数据表。我们在edm设计器上空白地方,右键-->根据模型生成数据库[Model First EF不会帮我们创建数据库,只会帮我们创建表。所以我们要事先把数据库建立好]

注意:更新Model到数据库时会删除原来表格和数据,再创建新的表格

即为:原来表格中的数据都会删除掉,然后重新创建新的表格(对于数据量比较大的表格,不能这样操作),可以通过【手动修改数据库和edmx文件】

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值