我不认为使用 Azure 移动服务会促使您重新设计所有现有架构。话虽如此,您可以尝试两种可能的解决方案。
第一个是实际上不使用 Azure 移动服务的 EntityData 类 - 在使用 AMS 时不必从 EntityData 继承。您需要继承 EntityData 以防您想使用 TableController 这可能是一个好主意,因为它为您提供了许多内置功能,但您可以选择使用普通的 ApiController 和您当前的模型。
另一种可能的解决方案是使用所谓的 DTO(数据传输对象),它可以帮助您保持当前架构,但仍然能够使用 AMS。
以下是有关 DTO 的更多信息的链接:
什么是数据传输对象?
创建数据传输对象 (DTO)
一个可能的实现:
假设您有以下模型:
public class MyUser
{
public int MyId
{
get;
set;
}
public string SomeOther
{
get;
set;
}
}
正如您所指出的,如果您想将此模型与 AMS 一起使用,您需要使用它们的 Id 属性而不是 MyId。如果要保持 MyUser 完整,可以引入以下类:
public class MyUserDTO : EntityData
{
public string SomeOther
{
get;
set;
}
}
现在您的服务将使用 MyUserDTO,它就像您的原始模型的代理。您必须解决的问题是您应该在 MyUserDTO 和 MyUser 之间进行转换。如果您的模型很简单并且您没有复杂的层次结构,那将非常容易。如果您有复杂的模型,DTO 可能不是正确的方法。Automapper是一种工具,可以帮助您从模型映射到 DTO,反之亦然。
不过,我对您的架构没有太多信息,使用 DTO 可能不太合适。