【问题标题】:Should I go with attaching MDF file to SQL Express or a real deployment script to SQL Server?我应该将 MDF 文件附加到 SQL Express 还是将真正的部署脚本附加到 SQL Server?
【发布时间】:2011-07-20 00:35:14
【问题描述】:

我正在 ASP.NET 4.0(使用 EF 4.0)上构建一个类似于博客的发布系统,我希望它在 第一个位置非常容易部署/备份 .我正在决定是否让系统在 SQL Server 中创建一个数据库并使用它(传统上),或者在站点中有一个 App_Data MDF 文件并使用 SQL Express 附加到那个文件。我知道 Express 版本的内存/大小限制,我不会达到限制,因为这不是性能关键的业务应用程序或任何严重的东西。只是一个带有博客/文字/照片的简单 CMS(实际照片不保存在数据库中,只是它们的路径保存在 MDF 中),仅此而已。我认为使用 MDF 没有问题,但我也不是该主题的专家,因为我从未使用 MDF 文件工作/创建过网站。我总是部署在 SQL Server 上,但我不想处理用户/角色/权限以及我希望用户因数据库设置而出现安装问题的最后一件事。

我应该带什么?我在使用 MDF 时会遇到什么问题?推荐?

【问题讨论】:

    标签: asp.net sql-server deployment mdf


    【解决方案1】:

    如果您使用 SQL Server Express - 这是一个 服务器 - 我总是会选择“真正的”数据库方法:将您的数据库附加到服务器,访问它通过其数据库名称,部署 SQL 脚本来更新它。

    “从文件路径附加数据库”在我看来总是半生不熟且相当混乱的杂物.....

    如果您不需要这种能力,请调查SQL Server Compact Edition,它是一个仅包含一个文件的进程内数据库。它有其局限性 - 没有存储过程,不支持某些数据类型,如 VARCHAR(MAX)XML - 但对于更简单的场景,它非常完美且易于使用 - 只需将其部署在您的应用程序中即可。它是单用户的,例如您不会在多个客户端之间共享数据,它是每个用户/应用程序自己的本地存储

    【讨论】:

    • 首先,精简版不适合。。好像有点蹩脚,我觉得和EF玩的不太好。我理解您对 Express Edition 和“附加数据库”部分的感受,但这只是让我的应用程序更便携,例如在移动系统时,只需复制所有文件即可。没有外部设置或备份或任何东西。这就是我真正想要的(就像 ASP.NET web.config 文件一样,它们位于网站目录中并具有网站的所有设置)。我很好奇使用 Express/attach 方法的一些不可预见的情况,如果有的话。
    • @can poyrazoglu:好吧,你征求意见 - 这是我的。顺便说一句:SQL Server Compact 4.0 绝对很糟糕,你永远不会解释为什么它“不合适”,而且它与 EF 4.0 配合得很好
    • 我尊重(并考虑)您认为这不是冒犯或任何东西(尽管听起来可能是这样 - 我同意)。我在网上看到的几乎所有地方都使用 Express 代替 CE,不要使用 CE 并继续使用 Express。这就是我这么说的原因。它也有不同的格式,并非所有内容都受支持,即使我现在可能不需要不受支持的操作,但我将来可能需要它们,然后更改所有内容将更加困难。底线:由于我已经说明的原因,我想使用 SQL Server 或 SQL Server Express,而不是 CE。
    • @can poyrazoglu:好的——够公平的。但再说一遍:我不喜欢“即时附加这个 MDF”的方法,我会总是使用“真正的”服务器方法 - 你有一个服务器,你附加数据库,而客户端只是与服务器对话并使用数据库名称 - 他们完全不知道文件、它们在哪里、它们被称为什么等等。
    • 那么您为什么总是使用真实的数据库而不是文件?如果那是因为从事大型商业(或至少更面向商业)项目,我明白了。我只是想知道使用 Express 是否会有任何问题(除了我已经知道的 CPU/内存/大小限制)。
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2014-01-21
    相关资源
    最近更新 更多