我正在组装一个简单的文档管理系统,我试图遵循可靠的 DDD 原则,一切都在顺利进行。我一直质疑的一个领域是管理文件的最干净的解决方案是什么。
作为背景,许多文档管理将围绕上传文档并将其分配给特定的“工作订单”。这是在制造业中,我们需要跟踪某些文件,并在完成客户的产品后将其发送给客户。
因此,我的有界上下文主要由几个主要实体组成,例如 DocumentPackage、文档、需求等。DocumentPackage 是单个“工作订单”的文档分组。同一文档可以在多个 DocumentPackages 中使用。每个 DocumentPackage 都有一定数量的需求,这是作为包的一部分所需的不同类型的文档。
因此,当涉及到上传和下载文件、操作文件以及更新数据库以反映这些更改时,我最想在哪里处理大部分操作?
这是我拥有的 UploadDocumentCommand 和处理程序的示例。请注意,我决定将上传的文件保存到 API 控制器中的本地文件系统,并将其作为 FileInfo 传递到我的命令中。
public class UploadDocumentCommand : IRequest<AppResponse>
{
public UploadDocumentCommand(Guid documentId, string workOrderNumber, FileInfo file, Guid? requirementId = null)
{
DocumentId = documentId;
WorkOrderNumber = new WorkOrderNumber(workOrderNumber);
FileInfo = file;
RequirementId = requirementId;
}
public Guid DocumentId { get; }
public WorkOrderNumber WorkOrderNumber { get; }
public Guid? RequirementId { get; }
public FileInfo FileInfo { get; }
}
public class UploadDocumentCommandHandler : …Run Code Online (Sandbox Code Playgroud) 处理 ASP.NET MVC 项目和 Visual Studio 无法识别网格间隙。是不是因为我在这个项目中的 CSS 版本?没找到设置的地方,有什么推荐的吗?
编辑:grid-row-gap 也无法识别
我一直在尝试使用值对象作为实体框架核心中的唯一 id。我已经到了正确保存到数据库的地步,但是 EF 没有正确查询数据库以找到我的实体。看起来 EF 正在加载整个表,然后在内存中进行映射。当我查看查询时,它不包含 id 的谓词。
我正在处理一个现有的数据库,该数据库使用带有填充零的 10 个字符串 ID,因此我正在查看是否可以将它们作为值对象使用。我接下来要尝试的是使用 Guid 并将“SalesOrderNumber”作为单独的字段。不过,这只是针对这种情况,我真正想弄清楚的是,是否可以将值对象用作实体框架中的主键。
实体:
public class SalesOrder: Entity<SalesOrderNumber>
{
private SalesOrder() { }
public SalesOrder(SalesOrderNumber id, DateTime dueDate)
{
Id = id;
DueDate = dueDate;
Open = true;
}
public override SalesOrderNumber Id { get; protected set; }
public DateTime DueDate { get; private set; }
public bool Open { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
值对象:
public class SalesOrderNumber: ValueObject
{
private readonly string _salesOrderNumber;
public SalesOrderNumber(string salesOrderNumber)
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个UserControl,它充当一种分段进度条.输入将是对象的集合,每个对象将具有类别,持续时间属性和状态属性.UserControl应该拉伸父控件的宽度和高度.集合中的每个项目应代表进度条的一部分; 段的颜色与状态相关,段的宽度与持续时间相关,并且段上覆盖的文本将与类别或其他内容相关.
示例: 自定义进度条
文本可能是集合项的ID,顶部颜色与状态相关,底部颜色与类别相关,宽度与持续时间相关.
我考虑过的一些选项:
无论哪种方式,我正在交叉我的手指,有人可能知道我的问题的简单解决方案.