我有一个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