我有一個MVC5
項目,我通過Entity Framework 6 - Code First
遷移將我的表填充到數據庫。查看錶格時,我認爲有些字符顯示不正確,而Database Collation
是SQL_Latin1_General_CP1_CI_AS
而不是French_CI_AS
。遷移後更改數據庫整理?
1)應該如何設置Database Collation
通過Code First
創建數據庫?我在下面找到了以下方法,但不確定它是否是此目的的最佳選擇?
public override void Up()
{
Sql("ALTER DATABASE [YourDB] COLLATE [YourCollation]", suppressTransaction: true);
[...Your DB Objects Creation codes here...]
}
在另一方面,使用這個腳本的時候,我遇到「ALTER DATABASE失敗。數據庫的默認排序規則‘DBNAME’不能設置爲French_CI_AS」錯誤。
2)是否可以在向相關表中添加一些數據後更改Database Collation
(通過Code First或SQL)?
任何幫助,將不勝感激...
非常感謝。只是一個問題:**什麼是supressTransaction **準確和**什麼時候應該設置爲true和false **?你能多解釋一下嗎? – hexadecimal
從[msdn參考頁](https://msdn.microsoft.com/en-us/library/system.data.entity.migrations.dbmigration.sql(v = vs.113).aspx):'suppressTransaction': 「一個值指示SQL是否應該在用於遷移過程的事務之外執行,如果沒有提供任何值,則SQL將在事務中執行。」一般而言,您希望遷移中的所有語句都作爲事務運行,否則如果出現問題,您將無法安全地重複執行遷移。當我想將它設置爲「true」時,我從未發現過一個場景。 – Diana
Bueno,muchas gracias Senorita :) – hexadecimal