在visual studio2012中如何使用localDB具體講解


http://www.cnblogs.com/zhangran/archive/2012/08/26/2657864.html

 說明: 經過一段時間的小捉摸終於基本掌握在vs2012中如何使用localDB了,當然包括其中令人頭疼的

  connectionStrings的設置,這也算承接我之前寫的一篇文章初試visual studio2012的新型數據庫Loc

   alDB,現在就將一下我的理解,初學可能有錯,歡迎指正^_^

       首先我是在vs2012種創建的一個mvc3項目,然后用的是EntityFramework的方式來訪問數據庫的,EF不太懂得也

   沒多大關系,我感覺EF就是一個類庫文件,里面許多便於我們訪問數據庫、操作數據庫的一些類和方法就是了。

   關於EF大家一定清楚它的Code First模式吧,這次我是用兩種方式分別來調用數據庫的,第一種就是普通的Code

   First方式,先建立一個Model類,然后自動mapping一個數據庫出來,第二種就是自己手動創建一個數據庫,然后

   改寫連接字符串connectionstrings使自己的應用能連接數據庫。下面分着講:

      第一種:

       創建一個實體類跟一個數據庫上下文類

 

復制代碼
public class Product
    {
        public int ProductID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public string Category { get; set; }
    }

  class EFDbContext :DbContext
    {
        public DbSet<Product> Products {get;set;}
    }
復制代碼

 

也許上面的類名大家面熟吧,呵呵,我是在做pro asp.net mvc3上面的練習時遇到的問題,就直接把我現成的代碼粘過來了(無侵權之意)。

     接下來就是修改web.config下面的連接字符串了

       <add name="EFDbContext" providerName="System.Data.SqlClient"

         connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=SportsStore;

         Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\SportsStore.mdf" />

        其中,name屬性一定要跟自己的DbContext類名相一致,如果此處不一致就找不到數據庫了,它倆就是匹配作

     用 。這樣寫之后EFDbContext類才會去跟該字符串指向下的數據庫做映射。

     其中的Data Source指定數據庫類型

     其中Integrated Security指的是登陸類型,此處跟寫“True”作用一樣,就是可以以windows 身份登錄,每

     次登錄你就不用輸賬號密碼了。如果是“false”就是指的sql server方式登錄就要賬號密碼齊全。

     其中Initial Catalog屬性就是初始數據庫名稱,字面也知道個大概,我也不詳細說了,至於他有沒有深層次

     的作用我還不知道,這不是易出錯點。

     其中AttachDBFilename指的是一個路徑,放mdf文件的地方,上面的寫法是指的該文件放在自己工程的

     App_Data文件夾下面,AttachDBFilename=c:\SportsStore.mdf指的就是c盤根目錄下了,所以你可以根據

     這個屬性來改變訪問的mdf文件。

     上面的字符串寫完以后運行會自動聲稱一個數據庫SportsStore在你的App_Data文件夾下。

                        

     上圖可以看出生成一個EFDbContext數據庫,開始我就是以為這是個數據庫名稱,但想想自己的數據庫不是

   SportsStore嗎,后來判斷此名應該是一個連接的名詞,當你改變connectionstrings下面的name屬性時,

   該名字是跟着變化的。可以在這個Products表中添加幾條信息,然后從程序中讀出來,我的沒問題很順利

   得到了數據庫(當然這個順利也是折騰了好久之后的了)。

     第二種:

      當然還得需要上面的實體類,不許多講,打開服務器資源管理器,右鍵點擊“數據連接”創建新Sql Server數

   據庫,服務器名填(localdb)\v11.0

       

       我們創建一個新數據庫名為“People”,目的是用前面的程序再去訪問這個新建的數據庫,熟悉一下怎樣進行數據庫之間的轉換使用。

       在這個新數據庫中創建一個表Products,里面的結構要跟前面的一個樣,這樣才能把證你的實體類跟它也能正確匹配。

注意: 這里要說明的是在定義表結構的時候,想要保存表是按左上角的“更新”按鈕,而不是像以前那樣ctrl+s,來保存了。

       然后就是修改connectionstrings改變應用讓程序訪問People數據庫而不再是SportsStore數據庫。

    <add name="EFDbContext" providerName="System.Data.SqlClient" connectionString=

    "Data Source=(LocalDb)\v11.0;Initial    Catalog=People;

     Integrated Security=SSPI;AttachDBFilename=C:\Users\ran\People.mdf"/>

記得name屬性該填的內容要准確,另外自己建的數據庫默認在用戶文件夾下面。

       完成這些操作就能順利的改變數據庫的引用了^_^

      再講一個我范二的地方,建表的時候表的列名要跟你的實體類的屬性名一一對應的,而我寫的順序錯了,結果在執行的時

      候vs總會自動新建一個數據庫實例,后來總算明白了,所以映射這東西就是一一對應一處也不能出錯的,望謹記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM