[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)

319 lượt xem

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=&quot;data source=(local);initial catalog=DammioMVC;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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=&quot;data source=(local);initial catalog=DammioMVC;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

Theo đoạn mã trên, bạn thấy có 2 chuỗi kết nối là DefaultConnectionDammioMVCEntities.

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=&quot;data source=(local);initial catalog=DammioMVC;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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=&quot;data source=192.168.1.1, 1433;initial catalog=DammioMVC;User ID=user;Password=pass;Integrated Security=False;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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.

Bình luận Facebook

Để lại bình luận

2 Comments on "[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)"

avatar
1000
  Subscribe  
mới nhất cũ nhất nhiều bình chọn nhất
Thông báo khi có
Minh Kha
Khách

Viết tiếp bạn ơi, học MVC hay lắm

Minh Tan
Khách

Hóng bài tiếp anh ơi