2016-05-24 6 views
2

書き込む方法DbMigration SQL Serverのエディションに依存するEF 6.xコードファーストマイグレーションを使用して作成しますか?SQL Serverのエディションに応じてエンティティフレームワーク(EF)を移行する

if (SqlEdition == "Enterprise") 
{ 
    Sql(@"..."); 
} 
else 
{ 
    Sql(@"..."); 
} 
+0

あなたは 'このクエリの組み合わせを使用することができSERVERPROPERTYをSELECT(「版」 ) 'を実行し、移行の際にエディションを取得するためにこれを実行します:http://stackoverflow.com/a/30373394/84206 – AaronLS

+0

これは、 'オンラインインデックス操作はSQL Server Enterprise Editionでのみ実行できます。'満足していない状態で 'if'の中にONLINE = ONがあってもエラーです。 – alexey

+0

'if'のコードが実行中であれば、それがelseにない限り、条件を満たす必要があります。私はConsole.WritelineまたはDebug.Writelineを使用して出力ウィンドウにメッセージを出力できると思います。クエリ結果を格納しているSqlEdition変数の値を確認し、Writelineをさまざまな場所に配置して、コードが各条件にどこに入り込んでいるかを正確に検証します。 – AaronLS

答えて

0

を移行中に、クエリを実行するには、この答えのアプローチを使用:説明する

擬似コードhttps://stackoverflow.com/a/30373394/84206

using (var dc = new DbContext("your connection string or name")) 
{ 
    string edition = dc.Database.SqlQuery<string>("SELECT SERVERPROPERTY('edition')").Single(); 

    if(edition == "Enterprise") 
    { 
     //... 
    } 
    else 
    { 
     //... 
    } 

} 
関連する問題