【发布时间】:2015-11-13 17:11:23
【问题描述】:
所以,我决定学习 DDD,因为它似乎可以解决我一直面临的一些架构问题。虽然有很多视频和示例博客,但我还没有遇到可以指导我解决以下场景的内容:
假设我有实体
public class EventOrganizer : IEntity
{
public Guid Id { get; }
public string Name { get; }
public PhoneNumber PrimaryPhone { get; }
public PhoneNumber AlternatePhone { get; private set; }
public Email Email { get; private set; }
public EventOrganizer(string name, PhoneNumber primaryPhoneNr)
{
#region validations
if (primaryPhoneNr == null) throw new ArgumentNullException(nameof(primaryPhoneNr));
//validates minimum length, nullity and special characters
Validator.AsPersonName(name);
#endregion
Id = new Guid();
Name = name;
PrimaryPhone = primaryPhoneNr;
}
}
我的问题是:假设这将被转换并提供给 MVC 视图,并且用户想要更新 AlternatePhone、电子邮件和许多其他属性,这些属性对于给定的有界上下文(不是为简洁起见)
我知道正确的指导是为每个操作都有一个方法,但是(我知道它有点像反模式)我不禁想知道这是否最终会触发数据库上的多个更新调用。
这是如何处理的?在某个地方,是否会有一些东西将我的 EventOrganizer 映射到某个东西 - 比如 DbEventOrganizer 并收集对域实体所做的所有更改并一次性应用这些更改?
【问题讨论】:
标签: c# .net domain-driven-design software-design