Ald*_*jal 4 c# entity-framework-core
我正在我工作的公司解决方案中实现存储库模式,将后端项目和数据库上下文中的模型类以及DbContexts项目中的迁移分开。
我正在使用Scaffold-DbContext将后端项目设置为模型类目标的默认项目,但是DbContext类始终与模型类在同一文件夹中创建。是否可以将DbContext类的创建重定向到其他输出文件夹,就我而言,重定向到DbContexts项目?
Eri*_*kEJ 10
是的,您可以使用我的“EF Core Power Tools”免费 Visual Studio 扩展来做到这一点:
https://github.com/ErikEJ/SqlCeToolbox/wiki/EF-Core-Power-Tools
现在可以使用-ContextDir选项重定向生成的上下文:
-ContextDir 放置DbContext文件的目录。路径是相对于项目目录的。
因此,在您的情况下,将是这样的:
Scaffold-DbContext "*connection*" "*provider*" -OutputDir "BackendProject" -ContextDir "DbContexts"
Run Code Online (Sandbox Code Playgroud)
来源:https : //docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
我遇到了类似的问题。我在一个单独的项目中有我的 EF 模型。为了在那里编写模型,我只使用了以下命令:
Scaffold-DbContext "Server=[Server];Database=[Database Name];Trsted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -Project "[Project Name]" -Force
Run Code Online (Sandbox Code Playgroud)
对我来说,关键是-Project "[Project Name]" -Force选择。
正如最上面的答案所示,如果您想在该项目中使用不同的文件夹,则可以使用该-OutputDir选项。
您可以在不同的项目(不仅是同一项目中的不同文件夹)中生成模型和 DBContext,如下所示:
Scaffold-DbContext "connectionString" Microsoft.EntityFrameworkCore.SqlServer -ContextDir "C:\MySolution\DataAccessLayer\Context" -OutputDir "C:\MySolution\DomainLayer\Models" -Namespace "DomainLayer.Models" -ContextNamespace "DataAccessLayer.Context"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5015 次 |
| 最近记录: |