首页 > 解决方案 > 将脚手架 EF 实体放在与上下文不同的目录中

问题描述

问题:有没有办法dotnet ef dbcontext scaffold不仅将上下文文件放在不同的目录中,而且在该文件中包含实体命名空间?

我正在使用dotnet ef dbcontext scaffold从数据库生成 EF 上下文和相关实体。数据库设计是单独处理的,因此需要定期重新生成实体和上下文。

我正在使用这个,效果很好:

dotnet ef dbcontext scaffold `
    "Server=localhost;Database=My.Db;Trusted_Connection=True;" `
    Microsoft.EntityFrameworkCore.SqlServer `
    --startup-project My.EfCliStartupProject\My.EfCliStartupProject.csproj `
    --force `
    --project My.Orm\My.Orm.csproj `
    --context MyContext `
    --schema MY_SCHEMA `
    --output-dir Entities

我希望能够通过添加--context-dir .. 不幸的是,using上下文文件的顶部没有引用实体命名空间的语句。

此命令在一个快速 PowerShell 脚本中执行此操作,该脚本还清除了实体目录,因此向该脚本添加一些代码以附加using语句并非不可能,但这并不理想。

我正在使用 EF CLI 3.0.0。尝试安装更高版本时出现错误:error NU1202: Package dotnet-ef 3.1.2 is not compatible with netcoreapp3.0.

一个较旧的问题Scaffold-DbContext有多种答案,但不清楚该using陈述是否预计会丢失。

谢谢!

标签: ef-core-3.0

解决方案


此功能包含在该工具的 3.1 版中,我想这就是您在 3.0.0 上遇到此问题的原因。

https://github.com/dotnet/efcore/pull/18405


推荐阅读