dotnet ef dbcontext 脚手架命令 --data-annotations 或 -d 命令行参数似乎不起作用
dotnet ef dbcontext scaffold command --data-annotations or -d command line parameter doesn't seem to work
我有一个简单的数据库 table,它具有各种属性。
我正在使用最新的 .NET core 6 和最新的 EF (6.0.4)
我想搭建我的数据库以便生成模型,所以我 运行 命令:
dotnet ef dbcontext scaffold "Server=MyServerName;Database=MyDBName;User Id=sa;Password=abc123;"
Microsoft.EntityFrameworkCore.SqlServer -o Model --no-pluralize -d -f
-d 命令应该使用数据注释而不是流畅的注释,但它没有。我最终得到一个 MyTable
class,其中清楚地列出了属性,例如public int MyTableId; public string MyTableProperty;....
然后在我的 MyDBNameContext
class OnModelCreating
方法中,几页这样的东西:
modelBuilder.Entity<MyTable>(entity =>
{
entity.HasIndex(e => e.SomeColumn, "idx_somecolumn");
entity.Property(e => e.firstcolumn)
.HasColumnType("decimal(8, 1)")
.HasColumnName("FirstColumn");
...
这太可怕了。帮助说明是这样的:
-d|--data-annotations Use attributes to configure
the model (where possible). If omitted, only the fluent API is used.
我可以费力地手动完成并添加注释,但是如果我将来由于更改而重新生成,那么它将撤消我的工作。
是否有数据注释属性不起作用的原因?
你可以使用这个:
dotnet ef dbcontext scaffold
"Server=MyServerName;Database=MyDBName;User Id=sa;Password=abc123;"
Microsoft.EntityFrameworkCore.SqlServer -o Model --no-pluralize --data-annotations -f
我无法删除我的问题,所以我将 post 答案放在这里...
这是一个错误!
-d
无效,但 --data-annotations
有效。
我有一个简单的数据库 table,它具有各种属性。
我正在使用最新的 .NET core 6 和最新的 EF (6.0.4)
我想搭建我的数据库以便生成模型,所以我 运行 命令:
dotnet ef dbcontext scaffold "Server=MyServerName;Database=MyDBName;User Id=sa;Password=abc123;"
Microsoft.EntityFrameworkCore.SqlServer -o Model --no-pluralize -d -f
-d 命令应该使用数据注释而不是流畅的注释,但它没有。我最终得到一个 MyTable
class,其中清楚地列出了属性,例如public int MyTableId; public string MyTableProperty;....
然后在我的 MyDBNameContext
class OnModelCreating
方法中,几页这样的东西:
modelBuilder.Entity<MyTable>(entity =>
{
entity.HasIndex(e => e.SomeColumn, "idx_somecolumn");
entity.Property(e => e.firstcolumn)
.HasColumnType("decimal(8, 1)")
.HasColumnName("FirstColumn");
...
这太可怕了。帮助说明是这样的:
-d|--data-annotations Use attributes to configure the model (where possible). If omitted, only the fluent API is used.
我可以费力地手动完成并添加注释,但是如果我将来由于更改而重新生成,那么它将撤消我的工作。
是否有数据注释属性不起作用的原因?
你可以使用这个:
dotnet ef dbcontext scaffold
"Server=MyServerName;Database=MyDBName;User Id=sa;Password=abc123;"
Microsoft.EntityFrameworkCore.SqlServer -o Model --no-pluralize --data-annotations -f
我无法删除我的问题,所以我将 post 答案放在这里...
这是一个错误!
-d
无效,但 --data-annotations
有效。