在ASP.NET中使用.MDF SQL Server数据库与使用SQL Server

Max*_*sky 9 sql sql-server asp.net asp.net-mvc hosting

我目前正在ASP.NET MVC中编写一个网站,我的数据库(其中没有任何数据,只有正确的表)使用我在开发机器上安装的SQL Server 2008.我使用Server Explorer连接到我的应用程序中的数据库,然后是LINQ to SQL映射.

完成网站开发后,我会将其移至我的托管服务,这是一个虚拟主机方案.我担心在生产服务器上使用当前在我的开发机器上运行的SQL Server设置是否很难,因为我必须通过主机控制面板导入所有数据库表.

我注意到可以从Visual Studio内部创建SQL Server数据库.然后将其存储在App_Data目录中.

我的问题如下:

  • 我的SQL Server数据库从SQL Server移出并作为.mdf文件移入App_Data目录是否有意义
  • 如果是这样,我该如何移动它?我相信这叫做Detach命令,不是吗?
  • 是否有任何性能/安全性问题可以与发生.mdf这样的文件吗?
  • 我的预期设置是否可以正常使用典型的虚拟主机方案?我希望.mdf数据库不会计入可以使用我的计划创建的有限数量的SQL Server数据库.

我希望这个问题不是太宽泛.提前致谢!

注意:我刚刚开始使用ASP.NET MVC以及所有这些,所以我可能完全误解了它应该如何工作.

Rem*_*anu 9

App_Data MDF是一个SQL Server数据库,它将及时附加到SQL Server实例.访问MDF的唯一方法是连接到SQL Server.Visual Studio隐藏了幕后发生的事情,但您仍在使用SQL Server实例.MDF的这种即时附件仅适用于SQL Express版本.在SQL Express 2005中,您最终会得到一个用户实例,请参阅连接到SQL Server Express用户实例(ADO.NET).使用SQL Express 2008,您可以控制您想要用户实例或附加到服务实例.

您必须与您的托管服务提供商核实,以确认他们是否将此数据库计为计划中的一个数据库.您必须记住,从资源使用的角度来看,通过连接字符串附加数据库(这是使用App_Data MDF部署选项时会发生的情况)与开放和运行数据库的任何其他方式一样昂贵,因此听到他们允许的话我会非常惊讶,并且不计算计划中允许的数据库数量.


ora*_*dov 5

所有SQL Server数据库都是.mdf文件.这些.mdf文件存储在此处:*C:\ Program Files\Microsoft SQL Server\MSSQL\Data*(默认位置).

您是正确的,您必须从服务器分离SQL数据库以将数据库移动到App_Data文件夹.您可以通过右键单击SSMS中的数据库来完成此操作.

将数据库移动到App_Data文件夹的优点是:

  1. 在生产中使用时,数据库将保留在那里,当您连接到数据库时,您将动态地将数据库附加到SQL Server.
  2. 您希望将网站与App_Data文件夹中的mdf一起发布到您的服务器(这与第一个原因一起).
  3. 将所有项目文件保存在一个位置.易于移动.易于备份.

在您通过自定义控制面板上传数据库的场景中,我认为将数据库移动到App_Data文件夹没有任何好处.当您发布站点时,您可以简单地分离数据库,获取mdf文件并上传(您的控制面板可能有其他方式来导入数据库,例如SQL脚本......).

直接回答你的问题......

将我的SQL Server数据库移出SQL Server并作为.mdf文件移入App_Data目录是否有意义?

我不这么认为.

如果是这样,我该如何移动它?

分离.您可以通过右键单击SSMS中的数据库来完成此操作.

这样的.mdf文件是否存在任何性能/安全问题?

我不确定安全性差异但是如上所述,当数据库保持连接到SQL Server时,可能会有更好的性能.

我的预期设置是否可以正常使用典型的虚拟主机方案?

您必须检查它们是否计算/允许动态附加sql数据库.

我希望这有帮助.我不是专家.