65.9K
CodeProject 正在变化。 阅读更多。
Home

Azure: SQL Azure

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2014年11月10日

CPOL

3分钟阅读

viewsIcon

17615

SQL Azure

这是一系列针对 Azure 入门者的文章,介绍如何在 Azure 中完成各种操作。本系列面向绝对的初学者,如果您不是初学者,那么本文可能不适合您。

您可以找到构成本系列的完整文章集,请访问此处:

这一次,我们将探讨如何在 Azure 中创建一个新的 SQL Server 数据库(在后续文章中,我们将研究 Microsoft 的 NoSQL 数据库“DocumentDB”)。

无论如何,第一步是打开门户:

在那里,您可以单击“SQL 数据库”,然后选择“创建 SQL 数据库”超链接。

接下来,您需要在向导中填写您的偏好设置。

完成此向导后,您将看到已创建一个新的数据库。

重要提示:创建数据库后,您需要确保打开标准端口 1433。最简单的方法之一是使用 Azure 门户查询数据库(即使数据库中还没有表)。

这个小技巧会提示您打开防火墙端口,这很好,让我们让 Azure 门户来完成这项工作。

因此,一旦端口打开,您将被重定向到浏览器中的一个应用程序(目前是 Silverlight 应用程序),该应用程序允许您使用您选择的连接详细信息。

成功连接后,您应该会看到类似以下内容:

现在 SQL 数据库中还没有数据。我们可以使用此 Silverlight 应用程序添加一些表和数据。但是,我更喜欢在 Visual Studio 中执行此操作,因此让我们返回门户,并打开连接字符串,如下所示:

我们对 ADO.NET 的那个感兴趣,其中我突出显示的部分是您需要的重要部分。

因此,获取 Azure SQL Server 实例的连接地址后,让我们通过 Visual Studio 连接并创建一个表:

在 Visual Studio 中建立连接后,让我们使用上下文菜单创建一个新表:

当您对表感到满意时,单击“更新”按钮,这将把更改推送到 Azure。这只是一个演示,对于实际应用程序,您可能需要一些脚本,或者使用 Entity Framework 迁移工具来管理更改。

现在让我们通过从 SQL Server Management Studio 连接到 Azure SQL 数据库来检查一切是否正常工作。

正如我们所见,我们看到了上面刚刚创建的表:

让我们也检查 Azure 门户查询应用程序:

是的,该表看起来不错,正如预期的那样,对于新表,还没有数据。现在让我们把注意力转向将一些数据导入到新表中。

让我们使用一个新的 Entity Framework 模型来与我们刚刚创建的新 SQL Azure 数据库/表进行通信。

我选择了默认设置,但您可以选择您喜欢的设置:

这将导致在演示应用程序中创建几个文件,例如这些文件,以及在 App.Config 文件中添加一个条目,以指向 SQL Azure 数据库实例。

以下是一些使用为我们创建的 Entity Framework 上下文执行基本 CRUD 操作的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace SQLAzureTest
{
    class Program
    {
        static void Main(string[] args)
        { 
            //insert
            using (var sachaAzureSQLEntities = new SachaAzureSQLEntities())
            {
                sachaAzureSQLEntities.Orders.Add(new Order()
                {
                    //note we are spelling this wrong so we can update it later
                    Description = "Buzz Lighyear toy",
                    Quanitity = 1
                });
                sachaAzureSQLEntities.SaveChanges(); 
 
                //select
                var order = sachaAzureSQLEntities.Orders.Single(
                    x => x.Description == "Buzz Lighyear toy");
                Console.WriteLine("Order : Id: {0}, Description: {1}, Quanity {2}",
                    order.Id, order.Description, order.Quanitity);
 
                //update
                order.Description = "Buzz Lightyear toy";
                sachaAzureSQLEntities.SaveChanges();
 
                var exists = sachaAzureSQLEntities.Orders.Any(
                    x => x.Description == "Buzz Lighyear toy");
                Console.WriteLine("Buzz Lighyear toy exists :  {0}", exists);
 
                order = sachaAzureSQLEntities.Orders.Single(
                    x => x.Description == "Buzz Lightyear toy");
                Console.WriteLine("Order : Id: {0}, Description: {1}, Quanity {2}",
                    order.Id, order.Description, order.Quanitity); 
 
                //delete
                sachaAzureSQLEntities.Orders.Remove(order);
                sachaAzureSQLEntities.SaveChanges();
 
                Console.WriteLine("Orders count :  {0}", 
                    sachaAzureSQLEntities.Orders.Count()); 
            }
 
            Console.ReadLine();
        }
    }
}

以下是针对我们刚刚创建的 SQL Azure 实例的结果:

© . All rights reserved.