Fluent NHibernate - 将单个表的部分映射到具有一些共享字段的多个类中

发布于 2024-10-17 20:40:02 字数 379 浏览 1 评论 0原文

我遇到的情况是,除了凭据数据(用户名、密码、以前的密码等)之外,用户表还包含有关用户的大量信息(名字、姓氏、电子邮件等)。通常我会将身份验证与个性化分开,但该表早已建立,我无法这样做。

有 1 个用户对象,其中包含在我的应用程序中传递的所有数据,这让我很困扰。相反,我想将其拆分为两个对象:UserUserCredentials。用户可以在我的应用程序中自由传递,而不会泄露任何密码,而 UserCredentials 将仅在我的服务后端中用于验证和验证用户。

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

I have a situation where a User table has lots of information about a user (first name, last name, email, etc) in addition to credential data (username, password, prior passwords, etc). Normally I would separate Authentication from Personalization, but this table is long established and I can't do that.

It bothers me to have 1 user object with all this data in it that is being passed around my application. I instead want to split this out into two objects: User and UserCredentials. User can be freely passed around my application without leaking any of the passwords, while UserCredentials will be used only in my services backend for validating and authenticate a user.

That seems simple enough. However, some fields need to be shared across both these objects. Will this cause issues with nhibernate when one of my objects is updated? For instance if a username change takes place and both have the username in the object, will both objects be updated?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

茶色山野 2024-10-24 20:40:02

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

替代方案:

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

If User and UserCredentials represent two views of the same entity, do not create two classes for them. It'll only lead to pain.

Alternatives:

  • Use a component to expose the "public" part of the entity and pass that
  • Use a DTO to contain exactly the fields you need and pass that
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文