我想在Entity Framework Code First创建数据库时设置数据库的默认排序规则.
我尝试过以下方法:
public class TestInitializer<T> : DropCreateDatabaseAlways<T> where T: DbContext
{
protected override void Seed(T context)
{
context.Database.ExecuteSqlCommand("ALTER DATABASE [Test] SET SINGLE_USER WITH ROLLBACK IMMEDIATE");
context.Database.ExecuteSqlCommand("ALTER DATABASE [Test] COLLATE Latin1_General_CI_AS");
context.Database.ExecuteSqlCommand("ALTER DATABASE [Test] SET MULTI_USER");
}
}
Run Code Online (Sandbox Code Playgroud)
当SQL Server 已设置为相同的默认排序规则Latin1_General_CI_AS 时,这似乎运行正常.
但是如果我指定了不同的排序规则,比如说SQL_Latin1_General_CP1_CI_AS 则会因错误而失败,
System.Data.SqlClient.SqlException: Resetting the connection results in a different
state than the initial login. The login fails.
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我如何设置校对吗?