【发布时间】:2016-06-19 07:37:57
【问题描述】:
我有一个名为 Party 的 ASP.NET MVC 控制器。在 CreateParty 视图中,用户可以输入 Party 信息并选择一些 Party User。
单击保存时,我将数据从控制器传递到名为 PartyService 的服务类,该类负责保存详细信息(我正在尝试使用 DDD 原则)。
public class PartyService
{
public void SaveParty(PartyDTO party, List<UserDTO> users)
{
int pId = SaveSingleParty(party);
foreach (UserDTO u in users)
{
SaveSinglePartyUser(u, pId);
}
}
private int SaveSingleParty(PartyDTO party)
{
//open new context
//add to Party repository
//call save changes
//close context
}
private void SaveSinglePartyUser(UserDTO user, int partyId)
{
//open new context
//add to Party repository
//call save changes
//close context
}
}
我对这段代码的担忧是创建了一个新的上下文来保存一个派对,然后为每个派对用户创建。我可以更改 SaveParty 方法,以便在其中执行所有操作(打开 1 个上下文并在调用 SaveChanges 之前进行所有更改)。
我从这两种方法中得到什么好处?我要指出的是,应用程序中可能只有 1 个地方用户可以创建派对和派对用户。
我是整个架构方面的新手,所以任何建议都将不胜感激。
【问题讨论】:
-
您是否研究过 DDD 聚合?您的示例中的聚合是什么?
标签: c# asp.net-mvc entity-framework architecture domain-driven-design