我想设置一个小型的事件采购库.我在网上阅读了一些教程,到目前为止一切都被理解了.
唯一的问题是,在这些不同的教程中,有两种不同的数据库策略,但没有任何注释,为什么他们使用他们使用的那个.
所以,我想问你的意见.重要的是,为什么您更喜欢您选择的解决方案.
解决方案是db结构,您可以在其中为每个事件创建一个表.
解决方案是db结构,您只需创建一个通用表,并将事件作为序列化字符串保存到一列.
在这两种情况下,我都不确定它们如何处理事件更改,也许它们会创建一个全新的事件.
亲切的问候
我已经在这里问过如何在不需要保存的情况下在Web Api中读取上传的文件.使用MultipartMemoryStreamProvider回答了这个问题,但是如何使用此方法获取文件名以从中派生上传文件的类型?
亲切的问候
我查看了许多事件采购教程,所有人都使用简单的演示来关注教程主题(事件采购)
这很好,直到你在实际的工作应用程序中找到这些教程之一未涵盖的内容:)
我打了这样的东西.我有两个数据库,一个事件存储和一个投影存储(读模型)所有聚合都有一个GUID ID,到目前为止100%罚款.
现在我创建了一个新的JobAggregate和一个Job Projection.我公司要求拥有一个独特的增量int64作业ID.
现在我看起来很愚蠢:)另一个问题是每秒多次创建一个作业!这意味着,获得下一个号码的方法必须非常安全.
在过去(没有ES)我有一个表,将PK定义为自动增量int64,保存Job,DB完成工作以给我下一个数字,完成.
但是我如何在我的Aggregate或命令处理程序中执行此操作?通常,投影作业是由事件处理程序创建的,但这是在过程的后期,因为聚合应该已经有了int64.(用于在空DB上重放聚合并具有相同的聚合ID - >作业ID关系)
我该如何解决这个问题?
亲切的问候
我想开始一个新项目(VS 2013),并且我想使用 TFS 2013 Git 存储库来进行源代码控制、错误跟踪、团队空间等。但我的管理层要求我将源代码也推送到不同的 git 存储库(无 TFS)。
您知道如何将我的更改自动推送到 TFS Git 项目和第二个 Git 存储库吗?
亲切的问候
我尝试了近一个小时的不同方法,但我不明白;(
我的 JSON 对象是这样的:
"typeOfHair": {
"value": [
{
"code": "Dry Hair",
"values": [
{
"value": "DryHair",
"language": "en"
},
{
"value": "TrockenesHaar",
"language": "de"
}
]
},
{
"code": "Any Type of Hair",
"values": [
{
"value": "AnyTypeOfHair",
"language": "en"
},
{
"value": "JedenHaartyp",
"language": "de"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的任务是使用 Newtonsoft.JSON 获取语言为“de”的所有值。我目前的做法是:
JsonObject.SelectTokens("typeOfHair.value.values[?(@.language == 'de')].value").ToList()
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?
亲切的问候
我观看并阅读了一些关于CQRS的教程,但是所有这些都没有使用真实世界的例子,所有这些(为了简单起见)只有一个内存事件存储.在这个例子中,通过"重放"事件来获取对象的当前状态是容易和快速的.
但是如何使用sql数据库在一个真实的单词示例中工作.假设我有一个用户系统.
我有UI,我可以添加和编辑用户,但也获得所有用户的列表.
现在,根据教程的说法,我将我的事件保存在数据库中,假设每个用户的个人资料有3个更改,我们有100.000个用户.
现在我有一个GetById的回购.在普通的非CQRS系统中,我根据Id得到一条记录.快速和小型资源使用.
但是现在在CQRS系统上,我必须从数据库中加载3条记录并将它们应用于一个新的用户对象并返回...这不是那么高效,但是我可以说:"也许生活在它身上,因为伐木的好处等等".
但是如何在一个页面上显示50个用户的列表用户场景.50次x 3记录,每页点击??? 这不仅仅是针对客户,也许是发票,预订等,这会浪费什么资源?
我对CQRS/EventSourcing有什么完全错误的认识吗?或者我有这个画袋的生活吗?
亲切的问候
有人可以解释一下这两个班级之间的区别吗?
我总是使用第一个,但我经常使用第二个.
public static class Test
{
public static void Method()
{
}
}
public class Test
{
public static void Method()
{
}
}
Run Code Online (Sandbox Code Playgroud)