将WPF项目链接到Windows Azure数据库

时间:2013-04-23 00:48:36

标签: c# wpf database visual-studio azure

我对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的'Model'文件夹:

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);

    }

目前我可以通过Server Explorer看到从RegisterUser方法添加的测试用户被插入到Windows Azure存储中的person表中。但是,当我检查Azure SQL DB时,实体不存在。

任何人都可以帮助解释实体未被发送到Azure的原因吗?

我已经检查过我的端口正在侦听并且SQL服务器正在运行。我在Visual Studio中没有错误。

1 个答案:

答案 0 :(得分:2)

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

我不太确定CloudStorageAccount.Parse如果你将它传递给看起来像SQL Server连接字符串的那样,就不会抛出错误。

如果要将Entity Framework与Windows Azure SQL数据库一起使用,只需使用常规DbContext代码并将WOD提供ADO.NET连接字符串,这看起来就像你所拥有的那样,除了Uid应该是Uid=uuuuu@xxxxx

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

Information on the available Azure storage options