1

我对 Windows Azure 比较陌生。到目前为止,我的 C# WPF 项目(Visual Studio 2012)一直在访问本地数据库。最近设置了一个 Windows Azure 帐户,我想将本地数据库迁移到 Azure。

我在 Azure 上创建了一个 SQL 数据库。

我正在添加 C# 代码,以便将数据从本地应用程序传递到云。为了测试此功能,我添加了一个随机用户,我想将其插入 Azure DB。

这是我到目前为止所拥有的:

在 App.config 中:

<connectionStrings>
   <add name="STAREntites"
        connectionString="Server=tcp:xxxxx.database.windows.net;
                     Database=xxxxx;
                     Uid=xxxxx.database.windows.net;
                     Pwd=xxxxx;
                     Encrypt=Yes;" />
</connectionStrings>

我有一个“模型”文件夹,其中包含PersonRepository.cs

public class PersonEntity : TableEntity
{
    public PersonEntity()
    {
    }
    public PersonEntity(int id, string name, double sal)
    {
        Id = id;
        Name = name;
        Salary = sal;
        PartitionKey = id.ToString();
        RowKey = name;
    }
    public int Id { get; set; }
    public string Name { get; set; }
    public double Salary { get; set; }
}

}

在我的注册页面中,我还有以下代码可以将数据发送到 Azure DB:

private void RegisterUser()
    {
             string connStr = ConfigurationManager.ConnectionStrings["STAREntites"].ConnectionString;                           
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connStr);
            CloudTableClient client = storageAccount.CreateCloudTableClient();
            CloudTable table = client.GetTableReference("PersonTable");
            table.CreateIfNotExists();
            var emp = new PersonTable
            {
                FirstName = "Cor",
                LastName = "Mky",
                EmailAddress = "cm@email.com",
                Password = "password",
            };

            TableOperation insertOp = TableOperation.Insert(emp);
            table.Execute(insertOp);

    }

目前,我可以通过服务器资源管理器看到从该RegisterUser方法添加的测试用户已插入到 Windows Azure 存储中的人员表中。但是,当我检查 Azure SQL DB 时,实体不存在。

任何人都可以帮助解释为什么实体没有被发送到 Azure 吗?

我检查了我的端口正在侦听并且 SQL 服务器正在运行。我在 Visual Studio 中没有收到任何错误。

4

1 回答 1

2

您似乎对存储类型感到困惑。CloudStorageAccount用于 Azure 存储:表、Blob 和队列,不适用于 Windows Azure SQL 数据库。

CloudStorageAccount.Parse如果您传递看起来像 SQL Server 连接字符串的东西,我不太确定如何不引发错误。

如果您想将 Entity Framework 与 Windows Azure SQL 数据库一起使用,只需使用常规DbContext代码并将 ADO.NET 连接字符串提供给 WASD,除了 Uid 应该是Uid=uuuuu@xxxxx.

如果您想使用表存储,那么您应该在表存储中查看使用Zudio 之类的插入实体。

有关可用 Azure 存储选项的信息

于 2013-04-23T13:45:49.140 回答