ADO.net обновление / добавление / удаление многих — многих элементов

#c# #asp.net #asp.net-mvc #ado

Вопрос:

Я пытаюсь добавить изображение в таблицу и связать его с продуктом. Вот настройка таблицы базы данных.

—- Тв-продукты —-

  • интВебПродуктИД
  • … Куча других переменных, которые здесь не имеют значения

—- твитпродуктивности —-

  • интВебПродуктИД
  • intWebImageID

—- Тв-изображения —-

  • intWebImageID
  • варИация изображения

Вот что я пытаюсь сделать, но это не работает.

 [HttpPost]
        public ActionResult ProductEdit(IEnumerable<HttpPostedFileBase> files, TWebProduct tbl, HttpPostedFileBase file)
        {
            // Thumbnail image
            if (file != null)
            {
                string path = null;
                string pic = null;
                pic = System.IO.Path.GetFileName(file.FileName);
                path = System.IO.Path.Combine(Server.MapPath("~/ProductThumbnails/"), pic);
                // file is uploaded
                file.SaveAs(path);
                tbl.varThumbnailImage = pic;
            }

            tbl.dteModified = DateTime.Now;
            tbl.intCompanyID = 1;

            // update the images
            
            string fName = "";

            try
            {
                //loop through all the files
                foreach (var img in files)
                {

                    //Save file content goes here
                    fName = img.FileName;
                    if (img != null amp;amp; img.ContentLength > 0)
                    {
                        #region ImageSaving Stuff

                        var originalDirectory = new DirectoryInfo(string.Format("{0}ProductImages\", Server.MapPath(@"")));

                        //string pathString = System.IO.Path.Combine(originalDirectory.ToString(), "imagepath");
                        string pathString = originalDirectory.ToString();

                        var fileName1 = Path.GetFileName(img.FileName);

                        bool isExists = System.IO.Directory.Exists(pathString);

                        if (!isExists)
                            System.IO.Directory.CreateDirectory(pathString);

                        var path = string.Format("{0}\{1}", pathString, img.FileName);
                        img.SaveAs(path);

                        #endregion


// this is the important part


                        // Get all the data saved to a variable
                        TWebImage webImage = new TWebImage();
                        webImage.varImage = path;


                        // Add to the TWebImages and link to the Product
                        tbl.TWebImages.Add(webImage);

                        
                    }

                }

                // Update the product
                _unitOfWork.GetRepositoryInstance<TWebProduct>().Update(tbl);

            }
            catch (Exception ex)
            {
                
            }

            return RedirectToAction("Products");
        }
 

Ошибки нет, но в таблице ссылок или в таблице изображений ничего нет.

Очевидно, я делаю что-то не так. Я новичок в использовании сущностей и репозиториев ADO. Я довольно хорошо разбираюсь в SQL и C#.

Я не знаю, что искать в Google или даже что искать. Мы ценим любую и всяческую помощь. Дайте мне знать, если я смогу что-нибудь прояснить.

Комментарии:

1. «Ошибки нет» — ну, в вашем коде есть пустой блок catch. Это огромный запах кода, и вам следует его удалить. Пустой блок catch в вашем коде говорит: «Мне все равно, работает этот код или нет, даже не утруждайте себя сообщением мне, если что-то пойдет не так». По крайней мере, вы должны зарегистрировать исключение.

2. Я использовал точку останова, чтобы посмотреть, выдала ли она ошибку или нет.