gpt4 book ai didi

azure - 将 ASP.NET 4.0 成员资格提供程序与 Azure 移动服务结合使用

转载 作者:行者123 更新时间:2023-12-02 03:48:09 25 4
gpt4 key购买 nike

我遇到了一个大问题。

我正在构建一个使用 ASP.NET 4 Web 应用程序 > Azure SQL > Azure 移动服务 > Windows Phone 8 应用程序的系统。数据被输入到已经托管在 azure 上的网站中,该网站使用了成员(member)提供程序及其默认表。此数据已成功存储在 Azure SQL 数据库上。

我的主要障碍是Azure移动服务要求其中的每个表都有一个名为“id”的主键 - 小写!在我看来很疯狂。当然,成员(member)资格提供商对 PK 有不同的名称。

问题 - 我应该重新设计我的整个 ASP.NET 应用程序(花费大量时间和精力)以使用自定义成员资格(PK 列名为“id”),还是尝试找到一种方法来尝试将列名称动态更改为“id”(不知道如何!)。有人有什么建议吗?非常感谢提前。

最佳答案

我认为使用 Azure 移动服务不应迫使您重新设计所有现有架构。话虽如此,您可以尝试两种可能的解决方案。

第一个是实际上不使用 Azure 移动服务的 EntityData 类 - 不强制从 EntityData 继承或使用 AMS。如果您想使用 TableController,您需要继承 EntityData,这可能是一个好主意,因为它为您提供了很多内置功能,但您可以选择使用普通的 ApiController 和当前模型。

另一种可能的解决方案是使用所谓的 DTO(数据传输对象),它可以帮助您保留当前的架构,但仍然能够使用 AMS。

以下是有关 DTO 的更多信息的一些链接: What is Data Transfer Object? Create Data Transfer Objects (DTOs)

可能的实现:

假设您有以下模型:

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 可能不太合适。

关于azure - 将 ASP.NET 4.0 成员资格提供程序与 Azure 移动服务结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575011/

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