#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. Я использовал точку останова, чтобы посмотреть, выдала ли она ошибку или нет.