这篇文章是为绝对初学者准备的,如果已经熟悉这些内容,那么这篇文章可能不适合。可以通过以下链接找到这个系列文章的完整集合:。这次,将探讨如何在Azure中创建一个新的SQL Server数据库(在后续的文章中,将探讨使用Microsoft的NoSQL数据库“DocumentDB”)。
首先,需要打开Azure门户:。从那里,可以点击“SQL Databases”并选择“Create a SQL Database”超链接。
接下来,需要在向导中填写偏好设置。一旦这个向导完成,将看到一个新的数据库已经被创建。
重要的是,当数据库创建完成后,需要确保标准端口1433是开放的。最简单的方法之一是使用Azure门户来查询数据库(尽管数据库中还没有表)。这个小技巧会提示打开防火墙端口,让Azure门户为完成这项工作。
端口打开后,将被重定向到浏览器中的一个应用程序(目前是Silverlight应用程序),它允许使用选择的连接详细信息。当成功连接后,应该看到类似这样的界面:
现在SQL数据库中还没有数据。可以使用Silverlight应用程序添加一些表和数据。然而,更愿意在Visual Studio中进行这些操作,所以让回到门户,并打开连接字符串,如下所示:
感兴趣的是ADO.NET,其中突出显示的部分是需要注意的重要部分。
获取连接地址后,让通过Visual Studio连接,并创建一个表:
一旦在Visual Studio中建立了连接,让使用上下文菜单创建一个新表:
当对表满意后,点击“Update”按钮,这将把更改推送到Azure。这只是一个演示,在真正的应用程序中,可能会使用一些脚本,或者使用Entity Framework迁移工具来管理更改。
现在让检查一下一切是否正常工作,通过从SQL Server管理工作室连接到AzureSQL数据库。正如所看到的,刚刚创建的表在上面:
让也检查一下Azure门户查询应用程序。是的,表看起来不错,由于是新表,所以还没有数据。现在让把注意力转向如何将数据插入到新表中。
选择了默认值,但可以选择喜欢的:
这将导致在演示应用程序中创建一些文件,例如这些,以及在App.Config文件中指向SQL Azure数据库实例的条目。
以下是使用为创建的Entity Framework上下文执行一些基本CRUD操作的代码:
C# 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(); } }