我有一个数据库实体,例如:-
public class DBThing
{
public int Id { get; set; }
public string Name { get; set; }
}
Id 映射到数据库主键。然后我有一个服务 DTO,例如:-
public class Thing
{
[IgnoreDataMember]
public int Id { get; set; }
public string Identity { get; set; }
public string Name { get; set; }
}
此处的 Identity 字段包含一个 REST 友好的 ID,如/things/1
,由 DB Id 制成。我不得不称它为与 Id 不同的东西,因为我正在使用 TranslateTo,DBThing
如果字符串Id
是,它会从 Thing 中断,""
并且它会尝试映射到 int Id,例如当 aPOST
发生时。
我遇到的问题是我的路线[Route("/things/{Id}", "PUT")]
失败,说它在 Thing 上找不到 Id 属性。如果我[IgnoreDataMember]
从课堂上删除它工作正常。我可以想象为什么会这样(在内部使用带有 ServiceStack 序列化的共享代码?)但我不知道如何解决这个问题。如果可能的话,我不希望将内部数据库数字 ID 序列化到 Web 服务。
有人可以帮忙吗?