protected override void Seed(Fitlife.Domain.Concrete.EFDBContext context)
{
List<List<string>> foodweights = GetLines(basePath + "FoodWeights.txt");
int counter = 0;
foodweights.ForEach(line =>
{
FoodWeights newVal = new FoodWeights()
{
FoodCode = int.Parse(line[0]),
PortionCode = int.Parse(line[1]),
PortionWeight = decimal.Parse(line[2])
};
context.FoodWeights.Add(newVal);
if (++counter == 1000)
{
counter = 0;
context.SaveChanges();
}
});
}
上記の方法を使用して、データベースにデータを入力します。しかし、1000 エントリに 50 秒かかります。470k エントリのファイルがあります。パフォーマンスを改善するにはどうすればよいですか。エンティティ フレームワークを使用しています。パッケージ マネージャで PM> update-database を実行すると、このメソッドが呼び出されます。同様の機能が必要です。私はasp.netとエンティティフレームワークに非常に慣れていないため、ガイダンスをいただければ幸いです。
PS: 1000 エントリに 50 秒かかっても大丈夫ですか、それとも何か間違っていますか?