I want to set the default collation for a database, when Entity Framework Code First creates it.
I\'ve tried the following:
public class TestInitiali
1):
public class DataBaseContext : System.Data.Entity.DbContext
{
public DataBaseContext() : base("MyDB") { }
static DataBaseContext()
{
System.Data.Entity.Database.SetInitializer(new MyInitializer());
}
....
}
2):
public class MyInitializer : DropCreateDatabaseIfModelChanges
{
public MyInitializer() { }
protected override void Seed(DataBaseContext context)
{
base.Seed(context);
using (var conn = new SqlConnection(context.Database.Connection.ConnectionString))
{
using (var cmd = conn.CreateCommand())
{
cmd.CommandText =
string.Format("ALTER DATABASE [{0}] COLLATE Persian_100_CI_AS",
context.Database.Connection.Database);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
context.Database.Connection.Close();
}
}
}