模型绑定没有设置器的实体

Posted

技术标签:

【中文标题】模型绑定没有设置器的实体【英文标题】:Model binding an entity without setters 【发布时间】:2012-02-15 13:41:17 【问题描述】:

在我的域中,我的实体在属性上没有设置器(奇怪的特殊情况除外)。因此,所有值都必须通过构造函数传入。

问题是,现在我使用域实体作为 CREATE 视图的模型,当模型绑定器尝试将表单字段绑定到模型时,它会抛出 No parameterless constructor defined for this object 错误。

解决这个问题的最佳方法是什么。我能想到的是:

    创建新的模型绑定器??? 为视图中使用的每个实体创建一个映射器,将FormCollection 转换为实体。 创建实体的 ViewModel 表示并将其映射到原始实体类,然后再将 MVC 发送到我的服务层。 重构实体以包含设置器。

我真的不想通过包含 setter 来打开我的实体。有人有任何提示吗?最简单/最干净的方式是理想的。

【问题讨论】:

【参考方案1】:

最简洁/推荐/防错/易于维护的方法是3.创建视图模型。 ViewModel 将只有创建视图所需的字段。您验证这一点,转换为领域模型(可能使用AutoMapper)并发送到服务层。

【讨论】:

以上是关于模型绑定没有设置器的实体的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 4.4:为图像文件上传保留的实体/模型属性由表单系统设置更新(结果始终为空 - 没有错误)

无法更新基本查看器的 Revit 模型

在实体框架中将模型属性设置为布尔值

如何设置具有多个实体绑定的 ElasticSearch 索引结构

使用跨越多个实体的核心数据绑定在 Cocoa 中实现父->子向下钻取

模型未绑定到 JSON