C#+EntityFramework编程方式详细之Model First

本文详细介绍了ADO.NET Entity Framework中的Model First模式,即如何通过设计数据模型自动生成数据库和数据类。从创建实体数据模型开始,到定义实体类和它们之间的关系,直至最终生成数据库,文章提供了完整的步骤指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Model First

Model First模式即“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在VS中通过设计对应的数据模型来生成数据库和数据类。

为了与上篇的Code First加以区分,这里新建一个控制台程序EFTest1,然后添加新建项,选择 ADO.NET实体数据模型,名称输入EFDemoDBModel

 

点击添加

 

 

 选择 空EF设计器模型  点击完成。然后在模型设计视图中,空白处右键,添加新实体学生类(Student)和科目成绩类(SubjectScore)

 

 

点击  确定,之后在

  

 

 添加其他标量属性:Name和Age(Age为Int32类型,可选中它在属性中修改);同样的方式添加第二个实体SubjectScore,并添加SubCode和SubName属性:

 

 

下面添加二者之间的关系,Student和SubjectScore是一对多的关系,Student可以通过SubjectScores属性访问SubjectScore实体,并且添加了一个外键约束到SubjectScore中:

点击空白处,右键新增---关联

 

 

 

 

 经过上述操作,到目前为止Model First中的Model已经创建结束,下面就需要生成到数据库了,在模型设计视图空白处选择“根据模型生数据库(G)…”:(这里是系统默认的master数据库,可根据自己需求更改,新建连接更换数据库)

 

 

下一步

 

 下一步,

生成数据库界面,点击完成。

点击完后之后,会打开数据库脚本,有一个对话框弹出,询问时候执行脚本,点击是即可生成数据库,

脚本:

 

 在模型保存后,生成了数据库上下文和实体类,并且打开了建表的脚本:

说明:如果没有上述界面的话,看看模型是否保存了,点击保存,就会有了,

如果数据库中表没有生成的话,打开脚本,点击左上加的执行按钮,执行即可,之后再到数据库刷新一下,即可

数据库

 

经过上述操作,数据库和实体类已经全部新建完毕。

下面我们就测试一下看看,如下

注意

如果出现下面的情况,就需要在EFDemoDBModelContainer中添加DbSet<Student>,DbSet<SubjectScore> 

 

 出现上述问题,那是因为,EFDemoDBModelContainer中没有生成DbSet<Student>,DbSet<SubjectScore>,所以要手动添加

如下:

 

这样EFDemoDBModelContainer中才能找到Students和SubjectScores

 

运行结果

 

注意:如果我们的模型发生改变,只需要在模型设计视图中修改模型,然后保存此时实体类就会相应改变,最后在重新在模型设计视图空白处选择“根据模型生数据库(G)…”,再重新执行生成的脚本即可。

 

转载于:https://www.cnblogs.com/1175429393wljblog/p/10775251.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值