Web Api2和受保护的setter?

时间:2015-05-19 14:47:49

标签: c# asp.net-mvc entity-framework asp.net-web-api asp.net-web-api2

我有一个实体,我使用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访问受保护的setter?或者我是否必须从DTO手动映射?

1 个答案:

答案 0 :(得分:0)

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

对于映射,我建议使用AutoMapper