English 中文(简体)
应属地 各实体总是装满全部装备?
原标题:Should Domain Entities always be loaded in their entirety?

我有一个习俗协会。 NET 会员提供人说,我正试图增加密码历史功能。 用户密码在X天后到期。 然后,他们必须将其口号改为过去十次变动中没有使用的密码。

我已经拥有用户实体,其现有密码有密码属性。 该图在b版的用户表上。 自2006年以来 我需要一份前面的密码清单,创建了一个用户词汇表,以储存这一信息,并提到用户。

由于密码是价值目标,在用户之外没有任何意义,因此这些密码属于用户群,用户是根基。 但这里是我的困境。 当我从存放处找一个用户时,我总是必须获得他们以前使用的所有密码? 99%的时间里,我不关心他们的旧密码,因此,每当我需要一个用户实体时,就能够回馈这些密码。 由于用户实体与情况脱节,我可以使用zy装。

我正在考虑设立一个密码实体,但出于上述原因,密码实际上是实体。

国际开发部的专家如何应对这种情况?

感谢。

Edit1:在考虑这一点后,我认识到,这基本上是关于Lazy Loading的问题。 更具体地说,你如何在一个互不关联的实体处理zy积问题?

Edit2:我使用LINQ到Q。 这些实体完全脱离了使用

最佳回答

很难充分回答这个问题,因为你没有具体说明一个平台,因此我不能确切地确定你甚至通过“脱离关系”的含义。 由于“脱钩”是指你在一次有效会议上有物体,但数据库链接目前尚未开放。 这是微不足道的,你只是重新连接和装.。 更复杂的情况是,如果你有一个“排泄物”的物体,即不再与积极届会联系在一起,在这种情况下,你不能简单地重新连接,你要么拿到一个新的物体,要么把你必须的东西附在积极的一届会议上。

Either way, even in the more complicated scenarios, there is still not a whole lot to lazy loading strategies because the requirements are so inflexible: You have to be "connected" to load anything, lazy or otherwise. Period. I will assume "disconnected" means the same thing as detached. Your strategy comes down to two basic scenarios: is this a situation where you probably need to just reconnect/attach on the fly to lazy load, or is it a scenario where you want to make a decision to sometimes conditionally load additional objects before you disconnect in the first place?

有时,你可能实际上需要为这两种可能性制定法典。

在你的情况下,你不仅必须连接到旧密码的弹.上,而且首先要更新用户物体。 此外,由于这是伙伴关系。 您可以按要求使用会议网,在这种情况下,你的选择现在基本上只剩下一门——在你脱节之前有条件地装满齐负荷,而现在就连在一起。

最常见的情况是个人记录,该系统确定他们必须改变密码,并要求他们在程序之前这样做。 在这种情况下,你也可以在登录后立即予以照顾,并保持用户的联系。 但是,你可能利用每届会议,因此,你可以做的是,在第一次申请过程中,时限是有限的,如果期限已经到期,你仍然在此连接起来,并返回一个满负荷的用户(假设你正在使用某种客户方文字验证的历史密码)。 之后,您可以回访或刚刚获得新的用户检查和更新。

然后,你总是有可能为他们提供选择,随时改变其密码。 他们已经陷入困境。 这里并不重要,你有用户,但请求早就结束,没有密码。 在这里,我或许会仅仅写上一种服务方法,即当他们援引更改密码功能时,该服务处只收到有完整历史的用户物体的第二份副本,仅作更新,然后更新密码,然后抛弃该物体,甚至不将其用于会议或认证目的。 或者,如果你要求你做同样的事——为了客户一方的验证目的获得完全初步的物体,那么当数据提交时,你要么重新瞄准你已经掌握的,要么只是找不到第三审,来实际进行更新。

如果在举行认证会议后需要密码,那么你也可以做同样的事,要么取代当地用户,要么更新当地用户的记忆密码。

如果你在多层次认证方面遇到过重困难,最有可能要求他们清点,在密码改变之后再作全分,那么用户的状况就不必在要求修改密码后再作一番改动。

不管怎样,如果你在每次请求后都使用届会,而且你的物体在每次请求之后都完全脱节,那么,在最初要求将数据退还给客户方验证时,你仍然能够保持zy。 在第二种情况下,你必须再行旅行(实际上,这里没有装上zy)。 在这两种情况下,尽管你们必须权衡你们的两种更新选择,因为你们总是在更新之前脱节。 你们要么只能从关于提交旅行情况更新的数据库中获得第二次访问,要么可以回头看你已经过的人。 它取决于什么是最佳的/最容易的——是否为一次不寻常的事件拯救了一次四轮 trip? 是否利用你选择的办公室对数据库进行了重新定位? 我可能不会重复,而只是像我需要的那样,为实际更新找到新的理由。

问题回答

暂无回答




相关问题
DDD - Returning entity in response to a service operation

I am new to domain driven development & have a simple question. If a service needs to generate some entity as a response to an operation then how should it be done? One of the ways is to inject ...

Domain Driven Design efforts in dynamic languages? [closed]

Are you aware of any DDD efforts in a dynamic language ? Practical resources on DDD tend to decrease quite dramatically when straying from enterprise-oriented solutions (a google search exluding C#, ....

Accessing domain objects in the view

If I don t want to expose the internal state of my Domain Objects, but I need to display them, I can think of three approaches. Which of these is the most "correct" (if any?). The "DTO/ViewModel ...

DDD screen cast question?

I wathced a screen cast on DDD by Greg Young the other day which spoke about persisting all state transitions of an object, instead of it s state when saved, then to load it "replay" all these ...

How to fluent-map this (using fluent nhibernate)?

I have two tables in my database "Styles" and "BannedStyles". They have a reference via the ItemNo. Now styles can be banned per store. So if style x is banned at store Y then its very possible that ...

热门标签