实体框架-如何在没有视图模型的情况下更新多个表

时间:2019-03-07 08:20:01

标签: entity-framework asp.net-web-api

准确地说,我想在用户单击“保存更新”时更新许多表。因此,用户所做的所有更改(添加/删除/更新)都将在Web api中处理。我不想使用视图模型,因为我的上级说过,它有点像我在Angular中所做的重复模型。有想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,让我们从概念上来看。

由于有一个保存按钮,这意味着您已经有一个表单,并且有了Angular模型,这些模型当然是JavaScript模型。该表格上必须有一个提交按钮,您才能访问您的角度应用程序中的所有数据。到目前为止,您不需要后端的任何内容。

接下来,您需要将数据提交到WebAPI。我们正在谈论从前端应用到后端应用的转移。 WebAPI具有端点,它们采用模型来捕获数据。如果不完全一样,这些型号将非常接近您的前端型号。这并不意味着您不应该拥有它们。

在构建混合了不同堆栈的系统时,确实发生了类似的事情,其中​​模型以不同的格式存在于多个地方。

有多种处理方法,您可能会有一个过程,其中在编译MVC应用程序时,会添加一些步骤以自动为您生成JavaScripts模型,因此,这并非全部都是手动的,但最终如果您想对代码有任何合理的了解,则仍然需要双方都使用模型。

最终,您将需要在Angular上使用模型,而在WebApi上需要模型。您还需要使它们保持同步。

我将与对方聊天并解释这些事情。

如果您不想将来再出现这样的情况,则可以坚持使用经典的MVC做事方式。

例如,您不需要使用Angular。我并不是说这个决定是错误的(这完全取决于它对项目有多大的帮助,并且有充分的理由把它混进去),但是您现在所处的情况是这样做的直接结果。 MVC具有使用后端模型构建表单的独特方式,因此不需要JavaScript特定的模型。

当然,您可以完全消除后端模型,而仅从提交的表单中获取数据(WebApi可以做到),然后您可以简单地将数据传输到Entity Framework DTO,但这太麻烦了而且容易出错,所以我不会使用它。