小编Dav*_*her的帖子

多对多:删除一方,关系条目但不删除另一方

我想删除具有许多用户组的用户,但这些用户组不属于该用户:其他用户也可以使用此用户组.即使没有用户引用用户组,也可以存在用户组.

我想映射多对多关系,这样如果用户被删除,关系会自动删除不是用户组

我试过,Cascade.All因为我认为多对多的级联会影响关系但不会影响另一方.我以为只会Cascade.AllDeleteOrphan删除其他人.显然我错了.

似乎我不理解级联规则.有人可以向我提供明确的解释,也许也可以达到我的目标吗?

谢谢

nhibernate many-to-many cascade nhibernate-cascade

13
推荐指数
1
解决办法
3952
查看次数

DDDD:事件数据

我试图让我的头周围DDDD格雷格-年轻的风格.

关于如何使用CQRS + EventSourcing实现DDDD有很多话题,并且有一些示例实现......总而言之,它可能会令人困惑......

在Gregs视图中,聚合没有getter或setter - 只是发出相应事件的状态更改方法.

Basicly一个事件 decribes一个状态转换,在过去happend.它的数据描述了改变了什么.

有人说,这些数据可以通过其他数据" 丰富 ".
这些额外的数据可以来

即我有- User两个聚合根(可以独立存在,有身份).有一个叫做的方法.UsergroupUserAddToUsergroup

public class User : AggregateRoot
{
    // ...
    public void AddToUsergroup(Usergroup usergroup)
    {
        // validate state
        RaiseEvent(new UserJoinedUsergroup(this.Id, usergroup.Id));
    }
    // ...
}

public class Usergroup : AggregateRoot
{
    private string _displayName;
    // ...
    public void ChangeDisplayName(string displayName)
    {
        // validate state …
Run Code Online (Sandbox Code Playgroud)

domain-driven-design cqrs dddd

8
推荐指数
1
解决办法
798
查看次数

DDD:引用另一个聚合子实体

我目前正在深入研究DDD,需要一点点启发.

我有两个实体

  • Temple
  • TempleVariant

Temple(耳机)包含基本信息(名称,描述,...),并有n个变体,其中包含技术说明(CAD绘图,尺寸,...)

我的第一印象是: TempleTempleVariant形成一个聚合 - 它们属于一起:它们似乎非常紧密耦合

  • 如果我删除一个Temple全部TempleVariants应该同样删除
  • TempleVariant没有 Temple(至少没有意义)s 不可能存在

但后来我读到,聚合根之外任何内容不允许引用另一个聚合内的实体.但实际上并没有Temple外部实体引用而是引用TempleVariants.

这是否意味着在(DDD)现实中Temple并且TempleVariant不同的聚合,它们似乎只是一个聚合体?

但是,如果我删除Temple怎么办?正如我所说,TempleVariants也必须删除.但那会违反规则"一次聚合 - 改变 - 一次交易"(或者所谓的:),因为我的"感觉"是我必须在一次交易中删除它们......

所以我的问题是:

  • 两个聚合?
  • 如果是这样:如何处理删除?

Lg
warappa

entity domain-driven-design transactions aggregate reference

7
推荐指数
1
解决办法
1520
查看次数

JS:如何防止中键的默认处理?

这似乎是一个荒谬的简单问题,但似乎更难......

我想阻止对中键的默认处理。我创建了一个的jsfiddle并加送stopPropagationstopImmediatePropagationpreventDefaultreturn false-就像这样:

$(document).on("mousedown", "a", function(e)
{    
    console.log("\nprevent mousedown...");
    e.stopPropagation();
    e.stopImmediatePropagation();
    e.preventDefault();
    console.log("...mousedown prevented");
    return false;
});
Run Code Online (Sandbox Code Playgroud)

但是中键被触发。顺便说一句,当我松开中间按钮时它会被触发。这是 JSFiddle:http : //jsfiddle.net/Gq4p9/4/

在 Chrome 29、Firefox 23 和 IE11 上测试。

我希望你们中的某个人能找出为什么这个脚本不会阻止默认处理。

javascript preventdefault

5
推荐指数
1
解决办法
5664
查看次数

保持事件类名称的事件向上转换

NEventStore 3.2.0.0

据我所知,NEventStore需要事件类型必须保留以进行事件上转换.
为了使它们在将来正确反序列化,它们必须具有唯一的名称.建议称之为EventEVENT_VERSION.

有没有办法避免EventV1,EventV2...,EventVN混乱你的域模型,只是继续使用Event
你有什么策略?

neventstore

4
推荐指数
1
解决办法
362
查看次数