gpt4 book ai didi

c# - Web Api2 和 protected setter ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:49 25 4
gpt4 key购买 nike

我有一个使用 EF 直接从数据库中提取的实体,如下所示:

public class MyEntity : EntityBase {
public string MyProperty { get; set; }
}

EntityBase 如下所示

public abstract class EntityBase {
public int Id { get; protected set; }
}

Id 受到保护的原因很简单:它在任何状态下都不应更改。这适用于 EF(我假设它使用反射来设置值?),但是当我通过我的 web api 从客户端发送带有模型数据的 POST 时,Id 始终为 0(默认值)。有没有办法使用 Web API 2 访问 protected setter ?还是我必须从 DTO 手动映射它?

最佳答案

当您的客户端尝试创建一个 MyEntity 时,它应该对 id 一无所知,因为它与创建状态无关。它只知道新实体会将 MyProperty 设置为“某个值”。我更喜欢使用 dto,它们应该只包含与请求相关的信息。

对于映射,我建议使用 AutoMapper .

关于c# - Web Api2 和 protected setter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30328954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com