Asp.net mvc 使用相关列表数据保存域模型
我有这个实体:Asp.net mvc 使用相关列表数据保存域模型,asp.net-mvc,domain-driven-design,Asp.net Mvc,Domain Driven Design,我有这个实体: public class Task { public int Id {get;set;} public string Title {get;set;} public List<User> Users{get;set;} } 公共类任务 { 公共int Id{get;set;} 公共字符串标题{get;set;} 公共列表用户{get;set;} } 使用相关数据保存此对象的正确方法是什么?假设在我的操作中,我从视图中获得一个任务和一个
public class Task
{
public int Id {get;set;}
public string Title {get;set;}
public List<User> Users{get;set;}
}
公共类任务
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共列表用户{get;set;}
}
使用相关数据保存此对象的正确方法是什么?假设在我的操作中,我从视图中获得一个任务和一个包含用户id的列表:
public ActionResult Save(Task task, List<int> users)
{
_repository.Save(task, users) //should I do it?
}
//or it?
public ActionResult Save(Task task, List<int> users)
{
task.Users = _userRepository.GetAllUsers(users);
_repository.Save();
}
public ActionResult保存(任务,列出用户)
{
_Save(任务,用户)//我应该这样做吗?
}
//还是它?
公共操作结果保存(任务,列出用户)
{
task.Users=\u userRepository.GetAllUsers(用户);
_Save();
}
了解存储库中发生的情况可能会有所帮助,但通常情况下,存储库不应调用实体上的任何行为。它应该只负责持久性和重构。典型的工作流程如下所示:
此代码可以直接在MVC控制器中,也可以在控制器引用的应用程序服务中。了解存储库中发生的情况可能会有所帮助,但通常情况下,存储库不应调用实体上的任何行为。它应该只负责持久性和重构。典型的工作流程如下所示:
此代码可以直接在MVC控制器中,也可以在控制器引用的应用程序服务中。问题不清楚,但我将执行以下操作。如果比较这两位代码,第一位代码对其他代码的可读性更强,它封装了用户不需要知道的所有设置工作 不过,我不会把它命名为“保存”,它不够具体
_repository.Save(task, users)
这个问题还不清楚,但我会做以下几点。如果比较这两位代码,第一位代码对其他代码的可读性更强,它封装了用户不需要知道的所有设置工作 不过,我不会把它命名为“保存”,它不够具体
_repository.Save(task, users)
那么,您是说在操作中加载用户还是使用服务层?您可以选择这两种方式。如果将此逻辑封装到控制器所引用的应用程序服务中,则可能更容易推断域层的API。另一方面,将该逻辑直接放在控制器中并绕过附加的服务层也没有什么错——控制器可以是服务层。因此,您是说在操作中加载用户还是使用服务层?您可以选择任何一种方式。如果将此逻辑封装到控制器所引用的应用程序服务中,则可能更容易推断域层的API。另一方面,将该逻辑直接放在控制器中并绕过附加服务层也没有什么错-控制器可以是服务层。方法名称只是一个示例:)是的,但为了解释我的问题,它是不必要的。方法名称只是一个示例:)是的,但为了解释我的问题,它是不必要的。