I have a simple model Class:
Code: Select all
[Table("USER_TEST")]
public class User
{
public long Id { get; set; }
public string Name { get; set; }
}
Code: Select all
public class MyContext : DbContext
{
public MyContext()
: base("MyConnectionString")
{
InitializeOracle();
}
private void InitializeOracle()
{
OracleEntityProviderConfig.Instance.CodeFirstOptions.UseNonUnicodeStrings = true;
OracleEntityProviderConfig.Instance.QueryOptions.CaseInsensitiveLike = true;
OracleEntityProviderConfig.Instance.Workarounds.IgnoreSchemaName = true;
OracleEntityProviderConfig.Instance.Workarounds.IgnoreDboSchemaName = true;
OracleEntityProviderConfig.Instance.CodeFirstOptions.TruncateLongDefaultNames = false;
OracleEntityProviderConfig.Instance.CodeFirstOptions.UseDateTimeAsDate = true;
OracleEntityProviderConfig.Instance.Workarounds.DisableQuoting = true;
OracleEntityProviderConfig.Instance.Workarounds.ColumnTypeCasingConventionCompatibility = true;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<MyContext>(null);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions.Remove<ColumnTypeCasingConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
base.OnModelCreating(modelBuilder);
}
public DbSet<User> Users { get; set; }
}
Now I try to add 1.000 users to the db:
Code: Select all
MyContext ctx = null;
try
{
ctx = new MyContext();
ctx.Configuration.ValidateOnSaveEnabled = false;
for (int i = 0; i < 1000; i++)
{
User u = new User();
u.Name = "User" + i.ToString();
ctx.Users.Add(u);
}
ctx.SaveChanges();
}
finally
{
if (ctx != null)
{
ctx.Dispose();
GC.SuppressFinalize(ctx);
}
}
If I do it by hand (OracleConnection + OracleCommand) it takes about 2.5 seconds...
I'm using:
- .Net framework 4.5
- Devart 7.4.146