9

Yayınlama sihirbazında varolan bir yayınlama profilini açtığımda VS2015'te, varsayılan veritabanımın artık EF CodeFirst olmadığına karar verir ve İlk Göç Kodlarını Yürütme seçeneğini kaldırır ve Veritabanını Güncelleştir ile değiştirir.Visual Studio Publish Web sihirbazını veritabanımın Entity Framework CodeFirst olduğunu nasıl ikna ederim?

nasılsa, sihirbaz bu artık bir CodeFirst Projesi olduğunu karar gibi görünüyor ve bu yüzden gibi DbDacFx ile yerini alan:

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="DefaultConnection" Order="1" Enabled="False"> 
     <Destination Path="Data Source=*" /> 
     <Object Type="DbDacFx"> 
     <PreSource Path="Data Source=*" includeData="False" /> 
     <Source Path="$(IntermediateOutputPath)AutoScripts\DefaultConnection_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" /> 
     </Object> 
     <UpdateFrom Type="Web.Config"> 
     <Source MatchValue="Data Source=*" MatchAttributes="$(UpdateFromConnectionStringAttributes)" /> 
     </UpdateFrom> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 

(ı değiştirdik:

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="DefaultConnection" Order="1" Enabled="True"> 
     <Destination Path="Data Source=*" /> 
     <Object Type="DbCodeFirst"> 
     <Source Path="DBMigration" DbContext="m4d.Context.DanceMusicContext, m4d" MigrationConfiguration="m4d.Migrations.Configuration, m4d" Origin="Configuration" /> 
     </Object> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 

için Dönüşümler çeşitli bağlantı dizeleri ile *)

Bu, bir CodeFirst Projesi olduğuna karar vermek için sihirbazın ne kullandığı hakkında herhangi bir fikriniz var mı?

Bu makale, http://blogs.msdn.com/b/webdev/archive/2014/04/09/ef-code-first-migrations-deployment-to-an-azure-cloud-service.aspx numaralı makalesinde, Execute Code ilk geçişlerinin kendi sürümünün nasıl düzenleneceğine ilişkin bazı ayrıntılar sağlar ve olası bir geçici çözümdür, ancak yalnızca işe yarar.

+0

Sorunuza tam olarak cevap veremiyorum, ancak Visual Studio'yu yeniden başlattığımda sorunun yeniden üretmediğini fark ettim. – Paul

+0

Birkaç kez VS2015'i yeniden başlattım ve hala burada bahsettiğim problemi alıyorum. – JustMaier

+0

Visual Studio 2017 ile aynı sorunu yaşıyorum. – Zero3

cevap

0

.pubxml dosyanızda, ObjectGroup'unuzu Dbcontext dosyanızın tam adı olarak yeniden adlandırmanız gerekir: m4d.Migrations.Configuration. Aksi takdirde göz ardı edilir gibi görünüyor.

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="m4d.Migrations.Configuration" Order="1" Enabled="True"> 
     <Destination Path="Data Source=*" /> 
     <Object Type="DbCodeFirst"> 
     <Source Path="DBMigration" DbContext="m4d.Context.DanceMusicContext, m4d" MigrationConfiguration="m4d.Migrations.Configuration, m4d" Origin="Configuration" /> 
     </Object> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings>