다음 코드에서 볼 수 있듯이 Save
메서드에서 세션을 닫습니다. 나는 그것이 AddUserSettings
가 작동하지 않는 thats 이유를 추측한다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? Save
방법 세션을 닫는 것이 나쁜 생각입니까? UserSettings
에 DB에 아직 사용자가 없으므로 문제가 발생합니까? 세션을 어떻게 처리합니까?세션 외부의 클래스 작업
사용자
public class User : BaseClass<User>
{
public virtual int UserId { get; set; }
public virtual string UserName { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Email { get; set; }
}
public virtual void AddUserSettings(UserSettings us)
{
us.User = this;
UserSettings = us;
}
UserSettings
public class UserSettings : BaseClass<UserSettings>
{
public virtual int UserSettingsId { get; set; }
public virtual User User { get; set; }
public virtual string FacebookId { get; set; }
public virtual string FacebookToken { get; set; }
}
저장 방법
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
session.SaveOrUpdate(x);
transaction.Commit();
}
}
코드
user = new Entity.User();
us = new Entity.UserSettings();
us.FacebookId = "foo";
us.FacebookToken = "foo";
user.AddUserSettings(us);
us.Save();
user.UserName = "foo";
user.FirstName = "foo";
user.LastName = "foo";
user.Email= "foo";
user.Save();