Я пытаюсь сохранить запись в базу данных, и есть файл изображения, который вместе с ним (загружен в папку). Я хочу, чтобы путь к файлу изображения также сохранялся в базе данных, но проблема в том, что я хочу, чтобы имя файла использовало идентификатор записи (PhotoId), чтобы гарантировать, что имя файла изображения всегда будет уникальным. У меня есть этот код, который на самом деле не работает, потому что PhotoId еще не создан, и поэтому сохраненные изображения имеют имена файлов 0.jpg.Есть ли способ получить идентификатор таблицы перед вставкой?
Есть ли в любом случае я могу точно предсказать идентификатор, поэтому я могу поместить его в поле имени файла базы данных? В противном случае это уловка.
if (!Directory.Exists(Server.MapPath("~/App_Data/" + photo.ClientId)))
{
Directory.CreateDirectory(Server.MapPath("~/App_Data/") + photo.ClientId);
}
var FileExt = Path.GetExtension(photo.File.FileName);
var FilePath = Path.Combine(Server.MapPath("~/App_Data/" + photo.ClientId), photo.PhotoId.ToString()) + FileExt;
photo.File.SaveAs(FilePath);
var ThumbFilePath = Path.Combine(Server.MapPath("~/App_Data/" + photo.ClientId),photo.PhotoId.ToString() + "_thumbnail") + FileExt;
PhotoTools.MakeThumbnail(FilePath, ThumbFilePath, 0.15);
//Finally update database
photo.FilePath = FilePath;
db.Photos.Add(photo);
db.SaveChanges();
return RedirectToAction("Create");
Моя проблема заключалась в том, что расширение может меняться, но я думаю, что понял это; Я просто сохраню расширение, которое я могу выяснить, прежде чем хранить запись в базу данных. – RealityDysfunction