当前位置: 首页 > 知识库问答 >
问题:

DTO上的ASP.NET Web API验证属性?

赫连卓
2023-03-14

我正在使用ASP.NET Web API和Code First实体html" target="_blank">框架,从我所读到的内容来看,您通常应该在操作方法中直接公开DTO对象,而不是实体对象(根据http://www.asp.net/web-api/overview/data/using-web-api-with-entityframework/part-5)。

因此,在我正在处理的一个案例中,为了避免上面链接中描述的“过度发布”问题,我创建了一个DTO对象,该对象具有几乎所有与模型对象相同的属性。然而,我想知道的是,我是否需要为DTO和模型属性复制所有相同的验证属性集(例如,[Required],[rangeN.M)]等等?最初我希望不要这样做(以避免重复),但是如果您想利用绑定验证(例如,modelstate.isvalid),则需要DTO上的验证属性;如果您想用适当的约束创建数据库,则需要主模型上的验证属性(Required]-&>不为空,等等)

没有更好的办法了吗?

还有,是否有些属性实体确实使用了,但模型绑定验证没有使用?例如,虽然[range(n.m)]将明显影响对某些客户机输入的验证,但entity是否完全关心它(据我所知,它似乎不会影响创建的DB模式?)

共有1个答案

微生嘉祥
2023-03-14

null

长话短说:

> 架构的属性>

DTO是除了DataMemberAttribute之外没有验证逻辑的简单对象

模型应该具有验证属性(仅当需要时,使用FluentValidation时不需要)

POST的工作流将为:-&>;DTO进入-&>;将dto交换到模型-&>;验证模型-&>;将模型交换到实体-&>;在数据库中存储实体-&>使用更新后的实体并将其交换到新的dto-&>;返回dto

null

 类似资料:
  • 我需要一个用户管理服务为我的Spring启动项目。我一般了解DTO(数据传输对象)在Spring的使用。但是当我考虑设计服务时,我只对一个“用户”模型使用多个DTO,如UserDTO、注册用户DTO、更新用户DTO、管理用户DTO...UserDTO就像一个只读数据(带有用户名、电子邮件、姓名的输出数据),用于显示用户信息。但是注册用户DTO就像一个输入数据(带密码,确认密码为新用户创建密码),用

  • 我使用的是Swagger(1.5.8),我想让我的定义检测DTO上的JSR-303注释,这样我就可以记录API的验证约束。 我希望注释(如本例)会显示关于最小值(44)的一些信息,但它不会。 由此产生的是: Swagger已经关闭了该功能的拉取请求,但我不清楚它在Swagger定义中的位置/方式。 我希望能够做这样的事情: 配置Swagger模块/插件以启用和等功能的首选方法是什么,以便他们检查我

  • 我有一个DTO,有几个字段,用户名,密码和电子邮件所有这些字符串。 我也有一个列表,我想作为一个可选的,这意味着它不必从表单中传递,可以留空。 这应该在前端有效: 因此,我们应该: javax中是否有@OptionalField注释之类的内容。验证。限制? 还是我唯一的选择是两个独立的DTO?

  • 我目前正在开发一个第一次使用DTO的应用编程接口。到目前为止,我已经使用了Spring的表单验证和。 所以我的问题是,是否有一种方法可以将DTO和“表单”验证结合起来。让我解释一下自己:假设我有一个登录服务和另一个注册服务。在注册服务中,我们有:姓名、密码和电子邮件,其中三个必须填写。至于登录服务,只有电子邮件和密码必须填写。所以我们会有这样的东西: 到目前为止,我所做的是为每个请求(表单)创建一

  • 晚上好,我正在尝试在下面的场景中使用Hibernate验证器:

  • 假设我有以下课程: 是否可以通过“MyProduct”类验证“code”属性?比如: