Entity Framework Core - Customise Scaffolding

前端 未结 2 1395
执念已碎
执念已碎 2020-12-30 09:05

In Entity Framework 6 we can add the T4 templates the scaffolding uses by running

Install-Package EntityFramework.CodeTemplates.CSharp

But

相关标签:
2条回答
  • 2020-12-30 09:43

    In .Net Core 1.1, the way to override design-time services is to implement the IDesignTimeServices interface in the startup assembly. For example:

    public class MyDesignTimeServices : IDesignTimeServices
    {
        public void ConfigureDesignTimeServices(IServiceCollection serviceCollection)
        {
            serviceCollection.AddSingleton<EntityTypeWriter, MyEntityTypeWriter>();
            serviceCollection.AddSingleton<DbContextWriter, MybContextWriter>();
    
        }
    }
    

    See https://github.com/aspnet/EntityFramework/issues/5617

    0 讨论(0)
  • 2020-12-30 09:45

    There is a special, yet-to-be-documented hook to override design-time services:

    class Startup
    {
        public static void ConfigureDesignTimeServices(IServiceCollection services)
            => services.AddSingleton<EntityTypeWriter, MyEntityTypeWriter>();
    }
    

    Then implement your custom generator.

    class MyEntityTypeWriter : EntityTypeWriter
    {
        public EntityTypeWriter(CSharpUtilities cSharpUtilities)
            : base(cSharpUtilities)
        {
        }
    
        // TODO: Override with custom implementation
    }
    

    Update: See Yehuda Goldenberg's answer for another way to do this in EF Core 1.0.2+.

    0 讨论(0)
提交回复
热议问题