在REST中创建复杂对象

时间:2017-03-27 11:25:19

标签: c# angularjs asp.net-mvc rest asp.net-web-api

我一直在做服务器端渲染应用程序,现在我开始为客户端渲染做WebApi + javascript框架。

我认为创建User的表单还包含Organization的字段,该字段将在一个事务中与User一起创建。如果我要进行服务器端渲染,我会使CreateUserViewModel包含表单中的所有字段,我的控制器操作将采用CreateUserViewModel,然后将CreateUserViewModel字段映射到User并且Organization个实体字段。

但是如果我正在制作REST api,我是否也应该在ViewModel中使用这种逻辑,它包含表单中的所有字段,哪个是控制器中action方法的参数?或者我应该有两个单独的方法POST: /usersPOST: /organizations并在客户端执行从输入字段到UserOrganization的映射,并分别调用这两个方法?如果第二个选项是正确的方法,那么我将如何使其成为事务性的呢?

1 个答案:

答案 0 :(得分:0)

将控制器中的操作分开并将两个独立的视图模型发送给它们要好得多,然后您可以将业务层中的Crud作为事务执行,或者如果使用实体框架,则可以使用工作单元模式。 考虑在其他一些形式中你只想添加用户,那么如果选择第一种方法,你必须发送一个包含大量空字段的大视图模型。 BR MReza