简介
EF本质上是code first的ORM库,虽然我们可以Database first方式开发,实际上EF在内部还是先生成内部模型在同步到数据库。但是很多时候我们的数据库已经建好,我们需要从数据库生成我们需要的DTO对象。有的时候,在数据库建模型更快,我们可以在数据库中建立初始模型,然后生成代码,可以节省很多时间。本文就是介绍如何从现有数据库中生成模型。
Update-Database –SourceMigration $InitialDatabase -Script
EF本身的工具
首先创建一个临时类库项目
Paste_Image.png在项目上安装EntityFramework
Paste_Image.png在EF目录上右键添加文件,选择ADO.Net实体数据模型
Paste_Image.png选择来自数据库的code first,选择下一步
Paste_Image.png选择一个数据库连接,连接上需要生成代码的数据库,选择下一步
Paste_Image.png选择需要生产的数据表和视图,单击完成
完成Binggo,所有类已经生成
用这种方式生成的类,都带有特性来描述这个字段对应数据库的信息。这个类做为Entity,非常不错,但是作为POCO,则会有问题。我们可以手动删除掉所有这些特性,也可以用另外一种办法来生成POCO类。
Paste_Image.png
生成POCO类
在VS2019,tools-->扩展和更新中,查找选择EntityFramework Reverse POCO Generator工具
新建一个Entity Framework Reverse POCO code First Generator文件,这会生成一个T4模板文件。
Paste_Image.png在T4模板中,copy ContextName到App.config中,替换掉EF生产的DataModel1 连接名字为MyDbContext
Paste_Image.png在生成的T4模板文件上右键运行自定义工具,
Paste_Image.pngbingo,所有POCO类已经生成,这样生成的文件没有attribute在字段上,但是类上面有一个信息表明是谁生成这个文件的。
Paste_Image.png
网友评论