ef-codefirst方式配置实体类,生成数据库

Posted spinoza

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ef-codefirst方式配置实体类,生成数据库相关的知识,希望对你有一定的参考价值。

做项目的时候,如果我们如果用orm方式来做数据库持久化操作的话.微软官方首先会向我们推荐ef,而我们用ado.net的话,似乎也需要建立实体类来接传值,那么我们用codefirst就有一举两得的效果了

1.在对应的项目安装ef

2.创建实体类

技术分享图片

3.接下来需要配置字段的属性,也就是长度,类型之类的,那么string类型一般对应数据库中的nvarchar类型,还有要建立实体类之间的对应关系,就是配置导航属性,这里有注解式和fluent Api两种方式来配置,我建议用fluent Api的方式来配置,因为他会比较直观,

一对多的情况下,我们可以在多的一端配置导航属性,并且建议只在一端配置导航属性,双向的绑定你还要配置更多的信息与它对应,岂不是画蛇添足,如下配置

技术分享图片

建立实体类对应的实体类+config文件,让他继承EntityTypeConfiguration,之后在构造函数中配置相关信息

totable是配置在数据库中生成的表的名称

hasrequired是否是必填字段,hasoption是可以为空,这里配置的是日志文件的纪录必须包含一个用户对象AdminUser,并用HasForeignKey指定了外键的名称AdminUserId,withmany()是对应主表的也就是AdminUser来说的,他有多个AdminLog

WillCascadeOnDelete是取消级联删除的策略,

技术分享图片这句话就是正常配置字段的可空性.

技术分享图片配置字段的长度

4.创建DbContext文件

技术分享图片

技术分享图片指定了数据库连接字符串

技术分享图片在数据库生成的时候加入fluent Api配置

技术分享图片把实体类加入到数据库

5.创建控制台项目,或是asp.net 项目生成数据库,

技术分享图片

 

以上是关于ef-codefirst方式配置实体类,生成数据库的主要内容,如果未能解决你的问题,请参考以下文章

EF-CodeFirst-基础

EF-CodeFirst-1 玩起来

EF-CodeFirst-1 玩起来

EF-CodeFirst-域模型配置

通过现有实体类,如何自动生成映射文件

EF-CodeFirst 继承关系TPHTPTTPC