Ily*_*kov 15 c# sql-server entity-framework entity-framework-core visual-studio-2015
我使用Scaffold-DbContextcommand in Package Manager Console为现有的SQL Server数据库创建和重新创建上下文和实体:
Scaffold-DbContext -provider EntityFramework.MicrosoftSqlServer -connection "my connection string"
Run Code Online (Sandbox Code Playgroud)
除了一件事之外,它的作用非常完美:它DbSet有单数形式的属性名称:
public partial class MyDbContext : DbContext
{
public virtual DbSet<Request> Request { get; set; }
public virtual DbSet<RequestHeader> RequestHeader { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢这些名字是复数形式(Requests等).除了网页搜索,我检查了命令语法:
get-Help Scaffold-DbContext -detailed
Run Code Online (Sandbox Code Playgroud)
并没有发现改变这种行为.这是我的packages.config:
<packages>
<package id="EntityFramework.Commands" version="7.0.0-rc1-final" targetFramework="net46" />
<package id="EntityFramework.Core" version="7.0.0-rc1-final" targetFramework="net46" />
...
</packages>
Run Code Online (Sandbox Code Playgroud)
如何DbSet在脚手架上复数名称?
更新2017-04: DB现在可以在Entity Framework Core 1.1中实现第一个脚手架复数化.请阅读下面的答案了解详情.
您可以使用此命令:
Scaffold-DbContext "connectionString" Microsoft.EntityFrameworkCore.SqlServer -o Models -UseDatabaseNames -NoPluralize -force
Run Code Online (Sandbox Code Playgroud)
您之前有 nuget 包:
Microsoft.EntityFrameworkCore.Design - version 5
Microsoft.EntityFrameworkCore - version 5
Microsoft.EntityFrameworkCore.SqlServer -version 5
Microsoft.EntityFrameworkCore.Tools - version 5
Microsoft.EntityFrameworkCore.Relational -version 5
Run Code Online (Sandbox Code Playgroud)
Install-Package Bricelam.EntityFrameworkCore.Pluralizer
Scaffold-DbContext命令Scaffold-DbContext -Connection "Server=<server>;Database=<dbname>;user id=<userid>;password=<pwd>;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data/EFModels/
正如@KalinKrastev在@natemcmaster回答的评论中指出的那样。EF Core 中的复数可以使用名为的包Bricelam.EntityFrameworkCore.Pluralizer进行安装,该包可以使用
在包管理器控制台 (PMC) 或
dotnet add package Bricelam.EntityFrameworkCore.Pluralizer
使用 Dotnet cli。
安装软件包后,只需使用常规Scaffold-DbContext命令即可。
Scaffold-DbContext -Connection "Server=<server>;Database=<dbname>;user id=<userid>;password=<pwd>;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data/EFModels/ -Force
EntityFrameworkCore 5.0更新:表名现在在脚手架上自动复数。(至少使用 -Provider Microsoft.EntityFrameworkCore.SqlServer)
| 归档时间: |
|
| 查看次数: |
5522 次 |
| 最近记录: |