Entity Framework Core 2.1 中的 ReverseEngineeringGenerator

Posted

技术标签:

【中文标题】Entity Framework Core 2.1 中的 ReverseEngineeringGenerator【英文标题】:ReverseEngineeringGenerator in Entity Framework Core 2.1 【发布时间】:2018-09-29 11:37:35 【问题描述】:

基于 Rowan Miller 先生的 this article,我想通过代码使用 EF Core 脚手架系统。

// Add base services for scaffolding
var serviceCollection = new ServiceCollection()
    .AddScaffolding()
    .AddLogging();

// Add database provider services
var provider = new SqlServerDesignTimeServices();
provider.ConfigureDesignTimeServices(serviceCollection);

var serviceProvider = serviceCollection.BuildServiceProvider();

var generator = serviceProvider.GetService<ReverseEngineeringGenerator>();
var options = new ReverseEngineeringConfiguration

    ConnectionString = @"Server=(localdb)\mssqllocaldb;Database=Northwind;Integrated Security=true",
    ProjectPath = @"C:\temp\",
    ProjectRootNamespace = "My.Namespace"
;

generator.GenerateAsync(options).Wait();

但它不适用于最新的 EF Core 2.1。

谁能帮我更新代码? (更新的文章)

【问题讨论】:

【参考方案1】:

2.1 的代码可在此处获得:https://github.com/ErikEJ/SqlCeToolbox/blob/master/src/GUI/ReverseEngineer20/EFCoreReverseEngineer.cs

var scaffolder = serviceProvider.GetService<IReverseEngineerScaffolder>();
var scaffoldedModel = scaffolder.ScaffoldModel(...
var filePaths = scaffolder.Save(scaffoldedModel,...

【讨论】:

你能更新你的链接吗?因为你的链接坏了。你有ReverseEngineer API 吗?

以上是关于Entity Framework Core 2.1 中的 ReverseEngineeringGenerator的主要内容,如果未能解决你的问题,请参考以下文章

Entity Framework core 2.1 多对多选择查询

使用 Entity Framework Core (2.1) 调用标量函数的最佳实践

Entity Framework Core 2.1 无法更新具有关系的实体

Entity Framework Core 2.1 - 拥有类型和嵌套值对象

Entity Framework Core快速开始

Entity Framework Core 快速开始