これに関する SO に関するかなりの数の投稿を読みましたが、これを理解するための助けが必要です。
CodeAnalysis は、このメソッドがオブジェクトを 2 回破棄していると言っています。実際、メソッド内の 2 つのオブジェクトについて、これについて警告しています。オブジェクトに対して 1回file.InputStream
、reader
オブジェクトに対して1 回
これが私のコードです:
public void SaveCsvData(HttpPostedFileBase file, int vendorId)
{
var listCsvImport = new List<CsvImport>();
try
{
using (var reader = new StreamReader(file.InputStream))
using (var csvReader = new CsvHelper.CsvReader(reader))
{
int count = 0;
while (csvReader.Read())
{
...<snip>...
listCsvImport.Add(record);
}
_db.CsvImports.AddRange(listCsvImport);
_db.SaveChanges();
}
...<snip>...
}
catch (CsvBadDataException ex)
{
log.Error("Invalid data in the CSV file, terminating process...");
throw;
}
catch (Exception ex)
{
log.Error("Csv import failed, no data was saved.", ex);
throw;
}
}
ありがとう