美文网首页
从数据库生成Entity/POCO代码

从数据库生成Entity/POCO代码

作者: 灭蒙鸟 | 来源:发表于2019-11-30 09:42 被阅读0次

    简介

    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工具

    Paste_Image.png

    新建一个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.png

    bingo,所有POCO类已经生成,这样生成的文件没有attribute在字段上,但是类上面有一个信息表明是谁生成这个文件的。

    Paste_Image.png

    相关文章

      网友评论

          本文标题:从数据库生成Entity/POCO代码

          本文链接:https://www.haomeiwen.com/subject/wsvfuttx.html