C# 使用WebAPI创建/更新与另一个表具有FK关系的记录-是否需要在WebAPI中创建两个单独的控制器?

C# 使用WebAPI创建/更新与另一个表具有FK关系的记录-是否需要在WebAPI中创建两个单独的控制器?,c#,sql,asp.net-mvc-4,asp.net-web-api,C#,Sql,Asp.net Mvc 4,Asp.net Web Api,我有两张桌子,一张联系桌和一张部门桌。这种关系是“与多个部门联系”。当我创建/更新联系人记录以及相关部门记录(在同一表单上)时,我是否需要在我的WebAPI中有两个单独的控制器(一个用于联系人,一个用于部门)来处理两个实体的创建/更新,或者,由于联系人表和部门表是通过外键链接的,因此我的单一联系人控制器是否可以同时处理更新联系人表和部门表的操作?您只需要一个控制器,就像这样 public HttpResponseMessage PostContractDepartments(Contract c

我有两张桌子,一张联系桌和一张部门桌。这种关系是“与多个部门联系”。当我创建/更新联系人记录以及相关部门记录(在同一表单上)时,我是否需要在我的WebAPI中有两个单独的控制器(一个用于联系人,一个用于部门)来处理两个实体的创建/更新,或者,由于联系人表和部门表是通过外键链接的,因此我的单一联系人控制器是否可以同时处理更新联系人表和部门表的操作?

您只需要一个控制器,就像这样

public HttpResponseMessage PostContractDepartments(Contract contract, Department[] departments)
或者,您可以有一个特定于合同部门的复杂模型,其中包含合同信息和部门信息列表

public HttpResponseMessage PostContractDepartments(ContractDepartments contractDepartments)
有些人更喜欢这个,而不是“闲聊的应用程序”。 但我认为,最好是一次更新一个部门,一次更新一份合同,等等。然后您可以构建“干净”的应用程序。

这更像是一个“最佳实践”问题还是一个“技术上可行”的问题?从技术上讲,你们可以在一个控制器中同时做这两件事,而最佳实践是另一个更主观的问题,尽管我不认为在一个控制器中处理这两件事有任何问题。