質問が意味するように、画像をファイルシステムに保存し、それへのリンクをデータベースに保存したいと考えています。しかし、NHibernate はファイル パスをデータベースに保存しません。コードは次のとおりです。
[HttpPost]
public ActionResult Edit(Item item, HttpPostedFileBase image)
{
if (ModelState.IsValid)
{
if (image != null)
{
string imageName = image.FileName;
string location = Path.Combine(Server.MapPath("~/Content/Images/ItemImages/") , imageName);
image.SaveAs(location);
item.Image= imageName;
}
menuItemRepository.SaveOrUpdate(item);
// here the debug show the image path has correctly assigned to the image property
Debug.WriteLine(item.Image);
TempData["message"] = string.Format("{0} has been saved", item.Name);
return RedirectToAction("Index", item.Parent);
}
else
{
// there is something wrong with the data values
return View(Item);
}
}
しかし、リポジトリがアイテムを保存または更新した後、データベースを見ると、画像がnullです。イメージ名のようなものを割り当てようとしましたが、うまくいきましたが、イメージパスが機能していません!! なぜこれが起こるのか混乱しています。誰にもアイデアはありますか?
public class Item
{
public virtual string Image { get; set; }
}
public calss ItemMap : ClassMap<Item>
{
public ItemMap()
{
Map(x => x.Image).Length(100);
}
}
//////////リポジトリ
public T SaveOrUpdate(T entity)
{
session.SaveOrUpdate(entity);
return entity;
}