插入大量数据实体框架7(核心),UWP

时间:2016-03-20 01:52:35

标签: c# entity-framework sqlite win-universal-app entity-framework-core

在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中存储大量日期?

0 个答案:

没有答案