Sau khi tạo được mô hình (Model) ở các bài trước, bạn nên tìm hiểu một chút về chuỗi kết nối database trong ASP.NET MVC. Để xem nội dung chuỗi kết nối, bạn có thể mở tập tin Web.config trong dự án và tìm chỗ có thẻ connectionStrings. Nội dung một tập tin Web.config như sau:
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=301880 --> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-DammioMVC-20170917054853.mdf;Initial Catalog=aspnet-DammioMVC-20170917054853;Integrated Security=True" providerName="System.Data.SqlClient" /> <add name="DammioMVCEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=DammioMVC;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> <system.web> <authentication mode="None" /> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <system.webServer> <modules> <remove name="FormsAuthenticationModule" /> </modules> </system.webServer> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration>
Đoạn có chứa các chuỗi kết nối bạn cần tìm:
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-DammioMVC-20170917054853.mdf;Initial Catalog=aspnet-DammioMVC-20170917054853;Integrated Security=True" providerName="System.Data.SqlClient" /> <add name="DammioMVCEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=DammioMVC;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings>
Theo đoạn mã trên, bạn thấy có 2 chuỗi kết nối là DefaultConnection và DammioMVCEntities.
Chuỗi kết nối DefaultConnection chính là dạng kết nối tới SQL Server Express Database Engine (cơ chế dữ liệu nhanh của SQL Server) cho phép chạy ở chế độ người dùng và làm việc với các tập tin *.mdf. Thông thường, các tập tin cơ sở dữ liệu LocalDB nằm trong thư mục App_Data của dự án Web.
Bạn phải chú ý nhiều hơn chuỗi kết nối DammioMVCEntities. Đây chính là chuỗi kết nối mà dự án Web hiểu được database từ SQL Server theo kiểu MVC. Chuỗi này có đoạn mã:
<add name="DammioMVCEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=DammioMVC;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Ba tập tin Models.Model.csdl, Models.Model.ssdl và Models.Model.msl là các tập tin cấu hình MVC. Theo đó, bạn đang dùng server SQL cài mặc định của máy bạn đang dùng (data source=(local)) và tên database là initial catalog=DammioMVC với chế độ tích hợp bảo mật (integrated security=True), không cần tài khoản đăng nhập.
Bạn phải ghi đúng thông số chuỗi kết nối này và khi triển khai thực tế bạn phải thay đổi thông tin. Ví dụ, chuỗi kết nối triển khai trên server có IP database là 192.168.1.1 và có tài khoản đăng nhập User là “user” và Pass là “pass” thì bạn thay đổi chuỗi kết nối như sau:
<add name="DammioMVCEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.1.1, 1433;initial catalog=DammioMVC;User ID=user;Password=pass;Integrated Security=False;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Ngoài cách trên ra, bạn còn có thể tham khảo các kiểu kết nối khác ở https://www.connectionstrings.com/sql-server/
Kết luận: Bài viết giúp bạn hiểu rõ về nội dung các chuỗi kết nối để kết nối database và dự án Web ASP.NET MVC với nhau. Mời bạn tiếp tục theo dõi bài tiếp theo.
- APA:
Dammio. (2018). [ASP.NET MVC] Phần 6: Tìm hiểu về các chuỗi kết nối cơ sở dữ liệu (connection strings). https://www.dammio.com/2018/04/19/asp-net-mvc-phan-6-tim-hieu-ve-cac-chuoi-ket-noi-co-so-du-lieu-connection-strings.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {[ASP.NET MVC] Phần 6: Tìm hiểu về các chuỗi kết nối cơ sở dữ liệu (connection strings)},
year = {2018},
url = {https://www.dammio.com/2018/04/19/asp-net-mvc-phan-6-tim-hieu-ve-cac-chuoi-ket-noi-co-so-du-lieu-connection-strings},
urldate = {2024-09-05}
}
Viết tiếp bạn ơi, học MVC hay lắm
Hóng bài tiếp anh ơi
Anh cho hỏi dòng
“publicKeyToken=”31bf3856ad364e35″ ” có sày chung với máy khác được ko, làm sao để có publickey Token .
Public Key Token là một dòng mã 64 bit của khóa công cộng (public key) tương ứng với khóa riêng (private key) dùng để ký tên (đánh dấu) cho 1 thư viện (assembly, DLL). Vì vậy nếu 2 thư viện (DLL) cùng tên thì vẫn có 2 PublicKeyToken khác nhau. Public Key Token là do Visual Studio tự gieo để ký tên (sign) cho các thư viện. Muốn tìm khóa thì dùng cú pháp: sn –T myDLL.dll ở console của Visual Studio hoặc CMD (commandline). Ngoài ra có thể thử: https://blogs.msdn.microsoft.com/kaevans/2008/06/18/getting-public-key-token-of-assembly-within-visual-studio/ Ví dụ: C:\WINNT\Microsoft.NET\Framework\v3.5>sn -T ABC.exe Microsoft (R) .NET Framework… Đọc tiếp »
của em không có chuỗi kết nối DefaultConnection là sao ạ?
Bạn kiểm tra xem trong tập tin Web.Config xem có Connection nào khác không? Có thể mỗi phiên bản Visual Studio cho ra Connection khác nhau hoặc là bạn chưa tạo Project MVC và kết nối database theo đúng yêu cầu các bài trước?
[…] Link bài viết: [ASP.NET MVC] Phần 6: Tìm hiểu về các chuỗi kết nối cơ sở dữ liệu (connection s… […]