1

当我使用 Visual Studio 2012 创建一个新的 ASP.Net MVC 4 项目时,它会将数据放入项目目录中的 mdf 文件中。

此时我想做的是将数据库轻轻迁移到 SQL Server 实例,保留 ASP.Net MVC 4 项目模板提供的所有脚手架内容(我的意思是用户帐户管理等)

正确的分步方法是什么?

我应该如何更改连接字符串?

我应该如何在生产环境中验证我在 SQL Server 中的应用程序?

抱歉问了一个愚蠢的问题,但我以前没有处理过 ASP.Net 应用程序,在我以前的经验(使用 WinForms)中,所有实际用户都有一个单独的 SQL Server 帐户,这非常简单。

4

2 回答 2

2

整个User Instance 和 AttachDbFileName=方法是有缺陷的 - 充其量!Visual Studio 将在.mdf文件周围进行复制,并且很可能,您的INSERT工作正常 - 但您最终只是查看了错误的 .mdf 文件

我认为真正的解决方案是

  1. 安装 SQL Server - Express(无论如何你已经完成了)或任何其他版本

  2. 安装 SQL Server Management Studio (Express)

  3. 在SSMS Express中创建您的数据库,给它一个逻辑名称(例如YourDatabase

  4. 使用它的逻辑数据库名称(在服务器上创建它时给出)连接到它——不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=YourDatabase;User ID=AppUser;Pwd=Top$ecret
    

    其他一切都和以前完全一样......

对于部署到生产,您基本上有多种选择:

  1. 自己创建部署 SQL 脚本并使用sqlcmd或任何其他有用的 SQL 脚本运行器执行它们

  2. 使用像Red-Gate SQL Compare这样的 SQL 差异工具,甚至是内置的 Visual Studio 差异工具来确定安装在客户站点上的数据库版本与新版本之间的差异,并从该差异创建单个升级 SQL 脚本

  3. 使用 Visual Studio 数据库项目并让 VS 处理升级脚本和部署。VS 数据库项目在您的数据库之上制作模型 - 您基本上只需要创建CREATE TABLE ....脚本,VS 工具会找出需要更改、删除、创建新的内容

  4. 如果您使用的是实体框架代码优先 - 考虑使用 EF 代码优先迁移从 C# 代码更新您的数据库

于 2012-12-11T11:29:02.340 回答
1

我所做的只是移动 mdf 和日志文件并通过 SQL Server 管理工作室附加它们连接字符串可以非常简单,例如:

<add name="DefaultConnection" connectionString="Server=YourServer;Initial Catalog=YourDatabaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
于 2012-12-11T11:32:04.580 回答