实体框架命令连字符没有意义?

时间:2015-07-10 14:56:31

标签: entity-framework

请考虑以下命令:

Update-Database -TargetMigration: "SomeMigrationName"

为什么Update-Database单向连字,-TargetMigration连字?

另一个例子是Get-Migrations vs -ConfigurationTypeName

是一般命令vs设置它来指定文件吗?请告诉我这是否是反直觉连字背后的逻辑。

编辑:但是Add-Migration既是命令又是规范,尽管正在创建一个新规范。混乱!

3 个答案:

答案 0 :(得分:1)

据我所知,中间带连字符的关键字是方法调用,其他是传递给该方法的变量。我认为他们这样做是为了让它感觉清晰,并区分两者。方法通常以大写字母开头,变量以小写字母开头。

答案 1 :(得分:1)

Update-Database 

是命令

-TargetMigration

是命名参数

这些是PowerShell命令。

连字符代表两种不同的东西。

1)Update-Database中的连字符只是将单词Update和Database分开。 PowerShell命令非常标准

2)-TargetMigration开头的连字符表示它是一个命名参数。使用 - 是命名参数的一个非常标准的指标,可以将它们与未命名的主要目标参数区分开来,例如:

Add-Migration initial

initial是未命名的主要参数。

答案 2 :(得分:1)

因为实体框架命令是PowerShell Cmdlet,所以它们(大部分)都被写入PowerShell Cmdlet Development Guidelines

Cmdlet命令使用Verb-Noun模式编写(请参阅Approved Verbs List),参数规范模式(-Noun [Value])由PowerShell处理。