我linq to sql我可以做一个局部视图并做这样的事情
public partial class User
{
partial void OnNameChanged()
{
UserName = StringFormatter.ToTitleCase(UserName.Trim());
}
partial void OnEmailChanged()
{
Email = Email.ToLower().Trim();
}
}
我可以在nhibernate中做这样的事情。如果可以的话。你可以做类似OnQuery或OnSave的东西吗?
答案 0 :(得分:3)
使用NHibernate做到这一点的最好方法是直接使用属性访问器:
public class User
{
...
private string userName;
public virtual string UserName
{
get{return StringFormatter.ToTitleCase(userName.Trim());}
set{userName = StringFormatter.ToTitleCase(value.Trim());}
}
private string email
public virtual string Email
{
get{return email.Trim().ToLower();}
set{email= value.Trim().ToLower();}
}
...
}
由于NHibernate不生成DAO,而只是使用现有的域对象,因此您可以完全控制get / set逻辑。不需要部分(尽管你可以这样设置,如果你真的想要的话)。