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");
}
}
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.
照合を設定する方法を教えてもらえますか?