title: How to register a custom EF Code First migration operation for scaffolding?
body: <p>I have <code>class SetIdentitySeedOperation: MigrationOperation</code>, which sets the identity value for the specified table. To wire it up, I use a custom <code>SqlServerMigrationSqlGenerator</code>, so if I manually write <code>.AddOperation(new SetIdentitySeedOperation(...))</code> in my migration's <code>void Up()</code>, my <code>Generate</code> method gets called, and I generate the appropriate SQL there.</p>
  
  <p>What's the mechanism to register this custom operation with the migration scaffolding, so that the code to add this operation gets generated on <code>Add-Migration</code>?</p>
  
  <hr>
  
  <p>UPDATE: I've been looking at the EF migrations source code, and it seems that the list of the migration operations to get scaffolded comes from a call to <code>EdmModelDiffer.Diff()</code>, and <code>EdmModelDiffer</code> is internal, so there's seemingly no way to plug your own conventions or attributes into the scaffolding engine.</p>
  
  <p>In light of this, the existence of the public surface for the migration operations and SQL generation seems rather pointless, as it provides no true extensibility point for the library users, requires the user to manually write explicit calls to their custom migration operations, and that's after having to write some boilerplate code to wrap their SQL generation into an operation.</p>
  
  <p>So is this entire mechanism only useful when the same code targets different databases?</p>