在本文中,将探讨如何在Visual Studio中设计和集成数据库。尽管在前文中已经讨论了数据库设计和管理的传统方法,但这些方法存在一些缺点,比如用户需要手动设计数据库样本或需要恢复给定的备份才能运行演示应用程序。这是一个非常耗时的任务。为了节省读者宝贵的时间,决定将样本数据库与样本应用程序集成在一起。这是一个很好的经验,决定与大家分享知识。
在Visual Studio中集成数据库意味着可以管理数据库,例如创建表、主键、外键以及几乎所有的SQL特性。通过将数据库开发紧密集成到Visual Studio中,应用程序开发团队和数据库设计者可以共同构建数据库,他们拥有一个共同的平台,可以轻松协作。这真的很棒,不是吗?
当开发人员在一个层级中进行更改,影响到另一个层级时,这将非常有用,例如在数据库中添加一个列,他或她可以对中间层进行相应的更改,而无需更改开发工具。然后,他可以部署一个项目或整个解决方案。然后,他可以执行队友实现的单元测试,以验证其他层级是否仍然按预期工作。
让开始通过Visual Studio设计和管理数据库。将逐步解释,并提供完整的快照。
要创建新的数据库项目,请打开Visual Studio 2010,选择“数据库”→“SQL Server”从“已安装的模板”窗格(左侧窗格)在“新建项目”对话框中。(图1 - 数据库项目模板)
请注意,选择了“SQL Server 2005数据库项目”,项目名称为“客户数据库”。现在Visual Studio为与SQL Server交互创建了整个模式。
要打开模式视图,请单击解决方案资源管理器工具箱中的“模式视图”按钮。现在可以看到Visual Studio为数据库管理创建了所有必需的内容。(图2 - 模式视图)
让开始将Visual Studio数据库模式与SQL服务器连接。要设置连接字符串,请右键单击“客户数据库”项目并打开项目属性窗口。找到目标连接字段,然后单击该字段的“编辑”按钮以打开“连接属性”窗口。
在“连接属性”窗口中,设置服务器名称、数据库名称,然后单击“确定”按钮。就是这样;已将项目配置为与数据库连接。现在可以继续创建表和约束脚本。
要创建表,请右键单击“模式”→“dbo”→“表”,然后从子菜单中选择“添加”→“表”。
现在选择“添加新项”对话框中的“表”,并将表命名为“客户”。
单击“确定”,查看脚本窗口。默认情况下,它将有一个表和两个字段(脚本)。现在,根据要求更改脚本。以下是示例中“客户”表的脚本。
CREATE TABLE [dbo].[Customer] (
CustomerID int NOT NULL,
FirstName varchar(20) NULL,
LastName varchar(20) NULL,
Photo image NULL,
Address1 varchar(40) NULL,
Address2 varchar(40) NULL,
City varchar(20) NULL,
Country varchar(20) NULL,
Phone varchar(15) NULL,
Email varchar(30) NULL
)
类似地创建所有必需的表。以下是示例中将要创建的其他表的脚本。
CREATE TABLE [dbo].[Order] (
OrderID int NOT NULL,
CustomerID int NOT NULL,
OrderDetailsID int NOT NULL,
Quantity int NOT NULL,
OrderDate datetime NULL,
RequiredDate datetime NULL,
ShippedDate datetime NULL
)
CREATE TABLE [dbo].[OrderDetail] (
OrderDetailsID int NOT NULL,
OrderID int NULL,
ProductID int NULL,
Quantity int NULL,
UnitPrice decimal NULL,
Discounts int NULL,
Size varchar(15) NULL,
Color varchar(20) NULL,
RequiredDate datetime NULL,
OrderDate datetime NULL,
ShippedDate datetime NULL,
Total decimal NULL
)
CREATE TABLE [dbo].[Product] (
ProductID int NOT NULL,
UntiPrice int NULL,
ProductName varchar(20) NOT NULL,
ProductDescription varchar(200) NULL,
AvialableColors varchar(15) NULL,
Size varchar(10) NULL,
Color varchar(20) NULL,
Discount int NULL,
Picture image NULL,
Ranking varchar(20) NULL
)
如何为表创建外键和主键脚本?非常简单。就像创建表脚本一样。右键单击表,然后选择“主键”或“外键”项,然后编写该脚本。
ALTER TABLE [dbo].[Customer]
ADD CONSTRAINT [CustomerIDPrimaryKey] PRIMARY KEY (CustomerID)
ALTER TABLE [dbo].[Product]
ADD CONSTRAINT [ProductIDPrimaryKey] PRIMARY KEY (ProductID)
ALTER TABLE [dbo].[Order]
ADD CONSTRAINT [OrderIDPrimaryKey] PRIMARY KEY (OrderID)
ALTER TABLE [dbo].[OrderDetail]
ADD CONSTRAINT [OrderDetailsIDPrimaryKey] PRIMARY KEY (OrderDetailsID)
ALTER TABLE [dbo].[Order]
ADD CONSTRAINT [FK_CustomerID] FOREIGN KEY (CustomerID) REFERENCES Customer (CustomerID)
ALTER TABLE [dbo].[OrderDetail]
ADD CONSTRAINT [FK_OrderID] FOREIGN KEY (OrderID) REFERENCES [Order] (OrderID)
ADD CONSTRAINT [FK_ProductID] FOREIGN KEY (ProductID) REFERENCES Product (ProductID)
查看下图中的最终项目,其中包含所有表和约束。
就是这样。现在部署项目。要部署数据库项目,请右键单击“客户数据库”项目,然后选择“部署”。Visual Studio将执行所有脚本,在SQL Server 2005中创建表和约束。部署成功后,打开SQL Server Management Studio Express并确保数据库已正确创建,包含所有约束。这是SQL Server 2005的截图。
哇,这个功能真的很棒。Visual Studio IDE的团队真的很棒。真的很高兴在.NET技术中工作。现在已经完成了在Visual Studio中集成数据库。这就是在“企业应用架构:设计.NET中的应用程序和服务”文章中所做的,并上传了带有数据库的示例。请注意,要在自己的环境中运行演示示例,需要在部署或运行应用程序之前更改服务器名称。在图3中清楚地提到了如何更改服务器名称。此外,还可以从本文下载仅包含数据库的示例应用程序。
尽管本文的核心是一个非常简单的想法,但对结果感到非常满意,并认为它真的很容易在自己的项目中使用。如果觉得这对有用,将非常感谢一些投票和评论。