小编Sha*_*iZy的帖子

最佳事件采购数据库战略

我想设置一个小型的事件采购库.我在网上阅读了一些教程,到目前为止一切都被理解了.

唯一的问题是,在这些不同的教程中,有两种不同的数据库策略,但没有任何注释,为什么他们使用他们使用的那个.

所以,我想问你的意见.重要的是,为什么您更喜欢您选择的解决方案.

  1. 解决方案是db结构,您可以在其中为每个事件创建一个表.

  2. 解决方案是db结构,您只需创建一个通用表,并将事件作为序列化字符串保存到一列.

在这两种情况下,我都不确定它们如何处理事件更改,也许它们会创建一个全新的事件.

亲切的问候

database cqrs event-sourcing

28
推荐指数
3
解决办法
3万
查看次数

MultipartMemoryStreamProvider:filename?

我已经在这里问过如何在不需要保存的情况下在Web Api中读取上传的文件.使用MultipartMemoryStreamProvider回答了这个问题,但是如何使用此方法获取文件名以从中派生上传文件的类型?

亲切的问候

c# asp.net-web-api

18
推荐指数
1
解决办法
1万
查看次数

事件采购增量int id

我查看了许多事件采购教程,所有人都使用简单的演示来关注教程主题(事件采购)

这很好,直到你在实际的工作应用程序中找到这些教程之一未涵盖的内容:)

我打了这样的东西.我有两个数据库,一个事件存储和一个投影存储(读模型)所有聚合都有一个GUID ID,到目前为止100%罚款.

现在我创建了一个新的JobAggregate和一个Job Projection.我公司要求拥有一个独特的增量int64作业ID.

现在我看起来很愚蠢:)另一个问题是每秒多次创建一个作业!这意味着,获得下一个号码的方法必须非常安全.

在过去(没有ES)我有一个表,将PK定义为自动增量int64,保存Job,DB完成工作以给我下一个数字,完成.

但是我如何在我的Aggregate或命令处理程序中执行此操作?通常,投影作业是由事件处理程序创建的,但这是在过程的后期,因为聚合应该已经有了int64.(用于在空DB上重放聚合并具有相同的聚合ID - >作业ID关系)

我该如何解决这个问题?

亲切的问候

c# cqrs event-sourcing

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

Visual Studio git-push 到两个存储库

我想开始一个新项目(VS 2013),并且我想使用 TFS 2013 Git 存储库来进行源代码控制、错误跟踪、团队空间等。但我的管理层要求我将源代码也推送到不同的 git 存储库(无 TFS)。

您知道如何将我的更改自动推送到 TFS Git 项目和第二个 Git 存储库吗?

亲切的问候

git tfs visual-studio-2013

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

JsonPath 与 Newtonsoft.JSON

我尝试了近一个小时的不同方法,但我不明白;(

我的 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)

有人可以帮我弄这个吗?

亲切的问候

json json.net jsonpath

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

CQRS,仍然没有得到完整,DB中保存的内容;(

我观看并阅读了一些关于CQRS的教程,但是所有这些都没有使用真实世界的例子,所有这些(为了简单起见)只有一个内存事件存储.在这个例子中,通过"重放"事件来获取对象的当前状态是容易和快速的.

但是如何使用sql数据库在一个真实的单词示例中工作.假设我有一个用户系统.

我有UI,我可以添加和编辑用户,但也获得所有用户的列表.

现在,根据教程的说法,我将我的事件保存在数据库中,假设每个用户的个人资料有3个更改,我们有100.000个用户.

现在我有一个GetById的回购.在普通的非CQRS系统中,我根据Id得到一条记录.快速和小型资源使用.

但是现在在CQRS系统上,我必须从数据库中加载3条记录并将它们应用于一个新的用户对象并返回...这不是那么高效,但是我可以说:"也许生活在它身上,因为伐木的好处等等".

但是如何在一个页面上显示50个用户的列表用户场景.50次x 3记录,每页点击??? 这不仅仅是针对客户,也许是发票,预订等,这会浪费什么资源?

我对CQRS/EventSourcing有什么完全错误的认识吗?或者我有这个画袋的生活吗?

亲切的问候

c# asp.net-mvc cqrs event-sourcing

2
推荐指数
1
解决办法
494
查看次数

静态类和非静态类有什么区别?

有人可以解释一下这两个班级之间的区别吗?

我总是使用第一个,但我经常使用第二个.

public static class Test
{
    public static void Method()
    {

    }
}


public class Test
{
    public static void Method()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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