流畅的NHibernate - 将单个表的部分映射到具有少量共享字段的多个类

时间:2011-02-16 17:33:55

标签: nhibernate fluent-nhibernate

我的情况是,除了凭据数据(用户名,密码,先前的密码等)之外,User表还有很多关于用户的信息(名字,姓氏,电子邮件等)。通常我会将身份验证与个性化分开,但这个表已经很久了,我不能这样做。

让我烦恼的是,有一个用户对象包含我的应用程序中传递的所有数据。我想把它拆分成两个对象:UserUserCredentials。用户可以在我的应用程序中自由传递而不泄漏任何密码,而UserCredentials仅在我的服务后端用于验证和验证用户。

这看起来很简单。但是,某些字段需要在这两个对象之间共享。当我的一个对象更新时,这会导致nhibernate的问题吗?例如,如果发生用户名更改并且两者都在对象中都有用户名,那么两个对象都会更新吗?

1 个答案:

答案 0 :(得分:3)

如果User和UserCredentials代表同一实体的两个视图,为它们创建两个类。这只会导致痛苦。

备选方案:

  • 使用component公开实体的“公开”部分并传递
  • 使用DTO准确包含您需要的字段并传递