【问题标题】:How to migrate a Visual Studio 2012 ASP.Net MVC 4 project to use an SQL Server instance instead of a data file?如何迁移 Visual Studio 2012 ASP.Net MVC 4 项目以使用 SQL Server 实例而不是数据文件?
【发布时间】:2012-11-28 22:39:24
【问题描述】:

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

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

正确的分步方法是什么?

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

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

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

【问题讨论】:

  • 查看connectionstrings.com 以获得巨大 SQL Server 连接字符串集合 - 找到您需要的,将其放入web.config 而不是您当前的 - 然后您就可以了重新完成。

标签: sql-server asp.net-mvc visual-studio entity-framework


【解决方案1】:

整个 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. 使用 SQL diff 工具(如 Red-Gate SQL Compare)甚至内置的 Visual Studio diff 工具来确定安装在客户站点上的数据库版本与新版本之间的差异,并创建单个升级 SQL 脚本从那个差异

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

  4. 如果您使用 Entity Framework 代码优先 - 考虑使用 EF 代码优先 迁移 从 C# 代码更新您的数据库

【讨论】:

  • 顺便说一下,使用完整的 SQL Server 版本(不是 express)它可以与“Data Source=”一起使用。但不适用于“Data Source=.\\MSSQLSERVER”。
【解决方案2】:

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

<add name="DefaultConnection" connectionString="Server=YourServer;Initial Catalog=YourDatabaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-28
    • 2012-11-28
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多