2
如何使用EF 6.x編寫DbMigration
取決於SQL Server版本的代碼優先遷移?實體框架(EF)遷移取決於SQL Server版本
僞代碼來說明:
if (SqlEdition == "Enterprise")
{
Sql(@"...");
}
else
{
Sql(@"...");
}
如何使用EF 6.x編寫DbMigration
取決於SQL Server版本的代碼優先遷移?實體框架(EF)遷移取決於SQL Server版本
僞代碼來說明:
if (SqlEdition == "Enterprise")
{
Sql(@"...");
}
else
{
Sql(@"...");
}
使用這個答案的方式來運行遷移過程中的查詢: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
{
//...
}
}
您可以使用此查詢的組合'SELECT SERVERPROPERTY(「版本」 )'並且像這樣運行以獲取遷移期間的版本:http://stackoverflow.com/a/30373394/84206 – AaronLS
它引發'聯機索引操作只能在企業版SQL Server中執行。'錯誤,即使ONLINE = ON在不滿足條件的'if'中也是如此。 – alexey
如果'if'中的代碼正在運行,它必須滿足條件,除非它在else中。我認爲你可以使用Console.Writeline或Debug.Writeline將消息輸出到Output窗口。檢查存儲查詢結果的SqlEdition變量的值,並將Writeline放在不同的位置以驗證代碼正在進入每個條件的位置。 – AaronLS