在Entity Framework 7中,我存储了具有以下结构的词典中的单词:
[Table("Dictionaries")]
public class Dictionary
{
public int DictionaryId { get; set; }
public string Name { get; set; }
public virtual List<Word> Words { get; set; }
}
[Table("Words")]
public class Word
{
public int WordId { get; set; }
public string Text { get; set; }
public int DictionaryId { get; set; }
public Dictionary Dictionary { get; set; }
}
public class DictionaryContext : DbContext
{
public DbSet<Dictionary> Dictionaries { get; set; }
public DbSet<Word> Words { get; set; }
}
它创建了一个SQLite数据库。
我创建了一个像这样的新词典:
var dictionary = new Dictionary {
Name = jsonDictionary.Name,
Words = GetWords()
};
大约有90,000个单词。我想快速存储它。 我尝试过:
db.ChangeTracker.AutoDetectChangesEnabled = false;
db.ChangeTracker.QueryTrackingBehavior = Microsoft.Data.Entity.QueryTrackingBehavior.NoTracking;
db.Dictionaries.Add(dictionary); // Lasts 1874.789 seconds
await db.SaveChangesAsync(); // Lasts 740.840
快速计算机需要近一个小时。我试了好几次,比如用100,1000等块来存储单词。但是所有的测试都很慢。
有没有办法以快速的方式在SQLite中存储大量日期?