Asp.net
AttachDbFilename 有什麼問題
顯然,在連接字元串中使用
AttachDbFilenameanduser instance是連接數據庫的不好方法。我在我的本地機器上使用 SQL server express,它似乎工作正常。但是,那麼連接到 SQL 伺服器的正確方法是什麼?謝謝你的解釋。
Using
User Instance意味著 SQL Server 正在創建該數據庫文件的特殊副本以供您的程序使用。如果您有兩個不同的程序使用相同的連接字元串,它們將獲得兩個完全不同的數據庫副本。這會導致很多混亂,因為人們將使用他們的程序測試更新數據,然後在 Management Studio 中連接到他們數據庫的不同副本,並抱怨他們的更新不起作用。這使他們經歷了一系列有缺陷的野鵝追逐步驟,試圖解決錯誤的問題。本文更深入地介紹瞭如何使用此功能,但請注意第一個注意事項:該
User Instance功能已被棄用。在 SQL Server 2012 中,首選的替代方案是(按此順序,恕我直言):
- 創建或將您的數據庫附加到 SQL Server 的真實實例。然後,您的連接字元串將只需要指定實例名稱、數據庫名稱和憑據。不會有混淆,因為 Management Studio、Visual Studio 和您的程序都將連接到數據庫的單個副本。
- 使用容器進行本地開發。這是Anna Hoffman 和 Anthony Nocentino的精彩入門影片,我還有一些其他資源在這裡、這里和這裡。如果您使用的是 M1 Mac,您將無法使用成熟的 SQL Server 實例,但如果您可以使用大多數SQL Server 功能(此處列舉了遺漏),則可以使用 Azure SQL Edge。
- 用於
SqlLocalDb本地開發。我相信我昨天向您指出了這篇文章:“ SQL Server 2012 Express LocalDB 入門”。- 使用SQL Server 緊湊。我最不喜歡這個選項,因為功能和語法不一樣 - 所以它不一定會為您提供您最終想要部署的所有功能。精簡版也已被棄用,所以就是.
當然,如果您使用的版本 < SQL Server 2012,
SqlLocalDb則不是一種選擇——因此您應該創建一個真正的數據庫並始終如一地使用它。為了完整性,我只提到了 Compact 選項——我認為這幾乎和使用AttachDbFileName.**編輯:**我在這裡寫過關於這個的部落格: