NHibernateをはじめて使用していて、苦労しています。 Webページ1では、私はフォームを開始します。私は2ページ目を保存してナビゲートしたいと思っています。 RequestFormオブジェクトを新しく挿入された行のIDで更新するにはどうすればよいですか?データはDBに保存されていましたが、リダイレクトを呼び出すとまだ0です。ここでNHibernate:挿入後にオブジェクトIDを@@ identityで更新する必要があります
は私のコントローラのコードは次のとおりです。ここで
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult New(RequestForm form)
{
// contract
if (form == null)
{
throw new ArgumentException("Cannot be null", "form");
}
// validate the form
form.Validate(ModelState);
// if valid, save & continue
if (ModelState.IsValid)
{
var request = new Request();
form.Update(request);
repository.Save(request);
return RedirectToAction("Edit", "Request", new {id = form.ID});
}
// if not valid, return new form
return View("New", form);
}
は、リポジトリのコードです:私の質問を読み取るための
<class
name="Request"
table="Data_Requests"
dynamic-update="true">
<id
name="Id"
type="Int32"
access="property"
column="RequestId"
unsaved-value="0">
<generator class="native"/>
</id>
ありがとう:
public void Save(T entity)
{
using (ISession session = GetSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
transaction.Commit();
}
}
ここでマッピングファイルの関連エリアです。私はあなたがしていることを知ったら、答えが簡単だと確信しています:)
動作しませんでしたであるべき。私はオブジェクトをリフレッシュするために何かをしなければならないかどうか知っていますか?私はそれがちょうど自動的に起こると思った... – Leslie