0
자식 테이블에서 참조되는 부모 테이블의 데이터를 Asp.net의 자식 뷰에서 업데이트하려고합니다.Asp.net 및 유창한 nhibernate에서 자식의 부모 테이블을 업데이트하십시오.
Fluent Nhibernate를 사용하여 테이블을 매핑했습니다. 자식 테이블에서
는, 매핑은 다음과 같습니다public class ChildMap: ClassMap<Child>
{
public ChildMap()
{
Id(i => i.childID).Not.Nullable();
Map(i => i.childValue1);
Map(i => i.childValue2);
Map(i => i.childValue3);
References(i => i.parent, "parentID").Cascade.All();
}
부모 테이블의 매핑 : 내 컨트롤러에서
public class ParentMap: ClassMap<Parent>
{
public ParentMap()
{
Id(i => i.parentID).Not.Nullable();
Map(i => i.parentValue1);
Map(i => i.parentValue2);
Map(i => i.parentValue3);
HasMany(i => i.Child).KeyColumn("childID").Cascade.All().Inverse();
}
}
, 그것은 다음과 같습니다
...[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
using (var tr = UnitOfWork.CurrentUnitOfWork.BeginTransaction())
{
try
{
var child= Registry.Childs.Get(id);
//This update works
UpdateModel(child, new[] { "childValue1", "childValue2", "childValue3" }, collection.ToValueProvider());
//This update on the parent doesn't work
UpdateModel(child.parent, new[] { "child.parent.parentValue1", "child.parent.parentValue2", "child.parent.parentValue3" }, collection.ToValueProvider());
tr.Commit();
}
catch (Exception)
{
tr.Rollback();
throw;
}
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
위의 코드를 사용하면 자식 테이블의 값을 업데이트하려고하면 작동합니다. 그러나 부모 테이블의 변경 내용을 저장하려고하면 작동하지 않습니다.
해결 방법에 대한 의견이 있으십니까?
감사합니다.