有时我正在使用CQRS模式和事件采购开发一个小项目.我有一个结构性问题,我不知道要采取哪种解决方案来解决它.
想象一下以下示例:发送一个命令,其中包含银行客户存入一定金额的信息(DepositCommand).在命令处理程序/实体/聚合(对讨论来说不重要)中,必须应用业务规则; 如果客户是前10%中的一个,在账户中有更多的钱赢得一些奖金.
问题是如何获得最新,一致的数据,以了解客户在存款后是否位于前10%.
如果您需要数据库中的数据来应用业务规则,您如何做?如果我不注意最新数据,我会遇到向两个不同客户提供奖品的可能性
期待听到您的意见.
我正在尝试在使用浏览器打印功能时在后续页面中显示表头.使用Firefox我只能在第一页显示标题.标头由标签定义.代码如下:
<html>
<head>
<style type="text/css">
@media print
{
thead
{
display: table-header-group;
}
}
</style>
</head>
<body>
<table>
<thead>
<tr><td>header1</td></tr>
<tr><td>header2</td></tr>
<tr><td>header3</td></tr>
<tr><td>header4</td></tr>
<tr><td>header5</td></tr>
<tr><td>header6</td></tr>
<tr><td>header7</td></tr>
<tr><td>header8</td></tr>
<tr><td>header9</td></tr>
<tr><td>header10</td></tr>
<tr><td>header11</td></tr>
<tr><td>header12</td></tr>
<tr><td>header13</td></tr>
</thead>
<tbody>
<tr><td>
Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>
Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>
Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>
Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>
Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>Text<br/>
</td></tr>
</tbody>
<table>
</body>
Run Code Online (Sandbox Code Playgroud)
使用打印预览来测试我的描述.如果删除以下代码行
<tr><td>header13</td></tr>
Run Code Online (Sandbox Code Playgroud)
标题出现在我想要的所有页面中.怎么解决这个问题?这似乎是表头的最大高度问题.
在过去的日子里,我正在制作一个示例应用程序来申请/学习 DDD。DDD 的原则之一(如果我错了,请纠正我)是对实体的所有更改都应该通过聚合根(AR)进行,并且 AR 应该加载他的子实体。这样更容易验证聚合一致性。只有一个小细节让我感到困扰。我无法理解 DDD 如何处理性能问题。想象一下,我有一个 Order(AR),比如说有 20000、30000 个 OrderLine。急切加载大量子记录时会存在性能问题。将订单说成 AR,您可以想象另一种可能发生这种情况的场景。我期待着阅读您对这个主题的看法。
我正在玩DDD并弹出这个问题.我如何加载子聚合根?会出现几个性能问题.想象一下以下示例:
public AggregateRoot1
{
#region
properties
#endregion
public AggregateRoot2 AR2{get;set;}
public IEnumerable<AggregateRoot3> AR3List{get;set;}
(...)
}
Run Code Online (Sandbox Code Playgroud)
如果我在获得AggregateRoot1时加载AggregateRoot2和AggregateRoot3列表,那么图表就会非常庞大.这似乎不是一个好方法.
我有两个选择:
顺便说一句,我不考虑使用延迟加载.
我很期待听到你对AR儿童装载的看法.谢谢
我有两个组合框,其中Parent必须显示国家/地区列表,子组合必须显示所选国家/地区的城市列表.数据存储在Dictionary<Int32, List<String>>具有名称的数据中CountriesCitiesList.我有以下代码
<ComboBox x:Name="cbCountriesList"
DataContext="{Binding CountriesCitiesList}"
IsSynchronizedWithCurrentItem="true">
</ComboBox>
<ComboBox x:Name="cbCitiesList" VirtualizingStackPanel.IsVirtualizing="True"
ItemsSource="{Binding CountriesCitiesList}"
IsSynchronizedWithCurrentItem="true">
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
问题是在城市组合中我无法显示所选国家的城市列表.我觉得它错过了最后一步.