首页 > 解决方案 > 没有鉴别器的所有实体的脚手架公共基类

问题描述

Scaffold 创建 Poco 类,例如

namespace MyDbContext
{
    public partial class Customer
    {
        public Customer()
        {
        }

        public string Id { get; set; }
        public string Name { get; set; }
   }
}

如何强制它为所有实体生成通用基类,例如

    public partial class Customer : EntityBase
    { }

继承生成鉴别器字段。EntityBase 类没有来自数据库的数据库属性。所以鉴别器字段生成是没有用的。如何禁用鉴别器字段生成?

Scaffold 在运行时执行。因此无法手动更改创建的代码或为每个表添加部分类。https://docs.microsoft.com/en-us/ef/core/managing-schemas/scaffolding中的文档没有在

dotnet ef dbcontext

命令。

这是使用 Npgsql EF Core 数据提供程序的 ASP.NET 5 MVC 应用程序。

标签: asp.net-coreentity-framework-coreasp.net-core-mvcnpgsqlasp.net-mvc-scaffolding

解决方案


简单的思考。没有逆向工程可以检测到实体的共同部分。更多,假设您有许多实体:E1、E2、E3、E4。当你一次脚手架E1,E2,E3时,你第二次脚手架E4,如何检测第一次和第二次的相互部分。

因此,逻辑思维向您展示了没有您所期望的工具。

您可以手动完成任务:

  • 自动生成实体 POCO
  • 创建一个基类
  • 删除相互关联的属性
  • 从基类扩展

推荐阅读