gpt4 book ai didi

asp.net - AttachDbFilename 有什么问题

转载 作者:行者123 更新时间:2023-12-02 15:35:06 25 4
gpt4 key购买 nike

显然,在连接字符串中使用 AttachDbFilename用户实例 是连接数据库的糟糕方法。我在本地计算机上使用 SQL Server Express,一切似乎都工作正常。但是连接 SQL Server 的正确方法是什么?

感谢您的解释。

最佳答案

使用用户实例意味着SQL Server正在创建该数据库文件的特殊副本以供您的程序使用。如果您有两个不同的程序使用相同的连接字符串,它们将获得数据库的两个完全不同的副本。这会导致很多困惑,因为人们会使用他们的程序测试更新数据,然后连接到 Management Studio 中数据库的不同副本,并提示他们的更新不起作用。这让他们经历了一系列有缺陷的徒劳无功的追逐步骤,试图解决错误的问题。

This article goes into more depth about how to use this feature ,但请注意第一个注释:用户实例功能已被弃用。在 SQL Server 2012 中,首选替代方案是(按此顺序,恕我直言):

  1. 创建数据库或将数据库附加到 SQL Server 的真实实例。然后,您的连接字符串只需要指定实例名称、数据库名称和凭据。不会出现混淆,因为 Management Studio、Visual Studio 和您的程序都将连接到数据库的单个副本。

  2. 使用容器进行本地开发。这是一个很棒的starter video by Anna Hoffman and Anthony Nocentino ,我还有一些其他资源here , here ,和 here 。如果您使用的是 M1 Mac,您将无法使用成熟的 SQL Server 实例,但如果您可以使用大多数 SQL Server 功能,则可以使用 Azure SQL Edge( omissions are enumerated here)。

  3. 使用SqlLocalDb进行本地开发。我相信我昨天向您指出了这篇文章:“Getting Started with SQL Server 2012 Express LocalDB”。

  4. 使用SQL Server Compact 。我最不喜欢这个选项,因为功能和语法不一样 - 所以它不一定会为您提供最终想要部署的所有功能。 Compact Edition is also deprecated, so there's that .

当然,如果您使用的是 < SQL Server 2012 版本,则 SqlLocalDb 不是一个选项 - 因此您应该创建一个真正的数据库并一致地使用它。为了完整性,我只提到 Compact 选项 - 我认为这几乎和使用 AttachDbFileName 一样糟糕。

编辑:我已在此处发布了有关此内容的博客:

关于asp.net - AttachDbFilename 有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com