このセクションは、Excelスプレッドシートから読み取るだけです。この部分は、パフォーマンスの問題なしで正常に機能します。
IEnumerable<ImportViewModel> so=data.Select(row=>new ImportViewModel{
PersonId=(row.Field<string>("person_id")),
ValidationResult = ""
}).ToList();
ビューに渡す前に、ValidationResultを設定して、このコードを作成します。これをコメントアウトすると、モデルはすぐにビューに渡されます。foreachを使用すると、1分以上かかります。item.PersonIdの値をハードコーディングすると、すぐに実行されます。何か間違ったことをしていることはわかっていますが、どこから始めればよいのか、どのようなベストプラクティスに従うべきかがわかりません。
foreach (var item in so)
{
if (db.Entity.Any(w => w.ID == item.PersonId))
{
item.ValidationResult = "Successful";
}
else
{
item.ValidationResult = "Error: ";
}
}
return View(so.ToList());