dotnet ef命令的预期值有哪些规则?

时间:2016-10-31 21:44:21

标签: entity-framework-core dotnet-cli

在具有迁移的ASP.NET Core应用程序中,运行update database会提供以下输出。它工作正常,详细输出显示各种选项的默认值。

dotnet ef --verbose database update 

Setting the data directory to 'C:\temp\bin\Debug\netcoreapp1.0\'.
Invoking dependency command 'Microsoft.EntityFrameworkCore.Design' in project '2016-101DP-TreeGame-Auth'
Running C:\Program Files\dotnet\dotnet.exe exec 
  --runtimeconfig C:\temp\bin\Debug\netcoreapp1.0\temp.runtimeconfig.json
  --depsfile C:\temp\bin\Debug\netcoreapp1.0\temp.deps.json 
  --additionalprobingpath C:\Users\me\.nuget\packages C:\Users\me\.nuget\packages\Microsoft.EntityFrameworkCore.Design\1.0.0-preview2-final\lib\netcoreapp1.0\Microsoft.EntityFrameworkCore.Design.dll 
  --assembly C:\temp\bin\Debug\netcoreapp1.0\temp.dll 
  --startup-assembly C:\temp\bin\Debug\netcoreapp1.0\temp.dll 
  --dispatcher-version 1.0.0-preview2-21431 
  --data-dir C:\temp\bin\Debug\netcoreapp1.0\ 
  --project-dir C:\temp 
  --content-root-path C:\temp
  --root-namespace temp
  --verbose update database
Process ID: 12544
Finding DbContext classes...
Using context 'ApplicationDbContext'.
Done.

当我尝试使用选项运行相同的命令时,CLI会抱怨我的选项有"意外值。"这是两个例子。

dotnet ef --data-dir C:\temp\bin\Debug\netcoreapp1.0\ --verbose database update

dotnet ef --data-dir "C:\temp\bin\Debug\netcoreapp1.0\" --verbose database update

两个都告诉我:

  

Microsoft.Extensions.CommandLineUtils.CommandParsingException:意外的值' C:\ temp \ bin \ Debug \ netcoreapp1.0 \'选项' data-dir'

     

at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String [] args)

     

at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String [] args)

dotnet ef命令的预期值有哪些规则?

1 个答案:

答案 0 :(得分:1)

有两层。 dotnet-ef从项目中读取元数据(并构建它),然后使用该元数据(包括输出程序集路径)调用ef。您无法从dotnet ef指定以下选项,因为它们是为您确定的。

  • --assembly
  • --startup-assembly
  • --data-dir
  • --project-dir
  • --content-root-path
  • --root-namespace

可以在dotnet ef --help上指定dotnet ef中显示的其他选项。

作为问题#6592的一部分,这应该会更好。

以下是一些documentation about dotnet ef