게시 된 파일 컬렉션과 같은 ASP.NET MVC 앱에서 DB에 삽입 할 항목이 많으면 대부분의 예외 처리 논리를 수행합니다 컨트롤러 또는 inisde 저장소에? ASP.NET MVC 컨트롤러에서 객체 컬렉션을 데이터 저장소에 삽입
는 (저장소에 어쩌면 처리를 제외하고이 방법이 성공적으로 실행 된 여부에 기반 허위/저장소 액션 반환 TRUE)이[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Import(HttpPostedFileBase fileToUpload)
{
string path = Server.MapPath("~/App_Data/Upload/") + Path.GetFileName(fileToUpload.FileName);
fileToUpload.SaveAs(path);
string selectCmd = "SELECT * FROM [Pricelist$]";
try {
foreach (DataRow dr in ExcelUtility.ReadFile(path, selectCmd).Tables[0].Rows) {
Product p = new Product
{
Title = dr["product_name1"].ToString().Trim(),
Measure = dr["product_measure"].ToString().Trim(),
};
if (dr["product_price"] != DBNull.Value)
p.Price = (double)dr["product_price"];
if (dr["product_taxrate"] != DBNull.Value)
p.TaxRate = (double)dr["product_taxrate"];
_repository.Add(p);
}
}
catch (Exception e) {
// handle exception or run the action in transaction??
}
return RedirectToAction("ImportSuccessful");
}
또는 뭔가 다른 작업을 수행합니까?
이것은 의도적입니다.장소에 DI가있는 저장소가 있지만 한 POST 요청에 여러 항목을 삽입한다는 것을보다 분명하게 알리기 위해 게시했습니다. – mare