如您在下面的代碼中看到的,我在Save
方法中關閉了會話。我想這就是爲什麼AddUserSettings
不起作用。做這項工作的最佳做法是什麼?在Save
方法壞主意是關閉會議?在UserSettings
保存數據庫中沒有用戶,那麼是否會產生問題?我如何處理會議之外的事情?課外作業
用戶
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();