Web Api2和保护设置器

本文关键字:设置 保护 Api2 Web | 更新日期: 2023-09-27 17:49:50

我有一个实体,我直接从数据库中使用EF,看起来像这样:

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

其中as EntityBase看起来像下面的

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

Id被保护的原因很简单:它不应该在任何状态下被改变。这对EF很好(我假设它使用反射来设置值?),但是当我通过web api从客户端发送模型数据的POST时,Id总是0(默认)。是否有一种方法来访问受保护的设置与Web API 2?或者我必须从DTO手动映射它?

Web Api2和保护设置器

当您的客户端尝试创建MyEntity时,它应该不知道id,因为它在创建状态不相关。它只知道新实体将把MyProperty设置为"一些值"。我更喜欢使用dto,它们应该只包含请求相关的信息。

对于映射,我建议使用AutoMapper