在EntityFramework6中,我们可以通过运行
Install-Package EntityFramework.CodeTemplates.CSharp
但是在实体框架核心中,脚手架系统似乎不使用T4模板,也不像是可以定制脚手架。它似乎都在c#类中。
有任何方法来定制来自脚手架的输出吗?
发布于 2016-06-07 15:36:51
有一个特殊的,但即将文档化的钩子来覆盖设计时服务:
class Startup
{
public static void ConfigureDesignTimeServices(IServiceCollection services)
=> services.AddSingleton<EntityTypeWriter, MyEntityTypeWriter>();
}
然后实现您的自定义生成器。
class MyEntityTypeWriter : EntityTypeWriter
{
public EntityTypeWriter(CSharpUtilities cSharpUtilities)
: base(cSharpUtilities)
{
}
// TODO: Override with custom implementation
}
更新:在EF核心1.0.2+中看到了Yehuda Goldenberg的另一种方法。
发布于 2016-11-24 04:48:08
在.Net核心1.1中,覆盖设计时服务的方法是在启动程序集中实现IDesignTimeServices接口。例如:
public class MyDesignTimeServices : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection serviceCollection)
{
serviceCollection.AddSingleton<EntityTypeWriter, MyEntityTypeWriter>();
serviceCollection.AddSingleton<DbContextWriter, MybContextWriter>();
}
}
https://stackoverflow.com/questions/37679367
复制相似问题