<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      跟大家分享Entity Framework使用Code First方式如何連接到現有數據庫

          看到標題可能已經要受到批評指正:Code First提倡的就是先用面向對象方式建模然后由EF自動生成數據庫(首先不討論優劣性,個人一直很向往這種設計方式),如果先數據庫建模再生成實體模型當然用VS2010EF模板再全選拖拓拽表生成更方便,而且是正道…...但除了鉆牛角尖以外,也不乏真正需要這樣做的場景,這里先不討論這些。回到正題,也當是對Code First方式做個進一步的了解吧,呵呵。

       

      (本文假設您已經了解EFCode First,當然你也可以到博客園里找找其它High Handblog

       

          在默認情況下,當你實現自己的數據庫上下文后,如果對上下文進行CRUD操作后,EF將自動根據上下文的定義自動生成數據庫(或連接到現有數據庫)。可能最容易被人忽略的問題就是:生成的庫的名字是怎樣確定的?表名又是怎樣確定的?因為這兩個問題直接決定了是產生數據庫還是連接到原有數據庫甚至可能會拋異常。回到咱們主題,我們的目的是連到現有數據庫,所以就從這點出發分析其原理。

          首先說說數據庫名字,當數據庫上下文對象是使用默認構造器(無參構造)實例化時,數據庫名將取為自定義數據庫上下文(自定義DbContext)的完全限定名,即"命名空間.上下文類名"。如:

       

          數據庫名將取為“TopwayAD.Dtv.Data.SqdlDB”。相信80%以上做數據庫設計的同志也不會這樣來命名數據庫:),多半都生成了個新庫了吧:)那怎樣才能“控制”數據庫的命名即連到現有的數據庫呢?答案很簡單,就是使用數據庫上下文帶參的構造器,此方法也是使ADO.NET連接字符串可以重用的最直接的方式,當然你不喜歡Code First就另當別論了,呵呵。構造器簽名如下:

       

      public SqdlDB(string connectionString):base(connectionString)

       

          當調用此構造器實例化數據庫上下文時,數據庫名將取自連接字符串中數據庫名的定義部分。如下圖:


          再說到表名,表名則會以自定義DbContext中的DbSet泛型屬性的實體類型的類型名的復數形式做映射,如果沒有找不到則會拋異常!!注意:是實體類的類型名,而不是上下文中的DbSet泛型類型的屬性名!如果現有數據庫的表名不是實體類的復數形式,則可以在實體類上添加Table特性來指定與哪個表做映射,即[Table("表名")]。如下圖:


          默認情況數據庫需要映射“Areas”表,若上下文數據庫中沒有該表則會拋異常

       

               最后對數據庫表中字段和實體屬性的映射再補充一下,默認表字段跟實體屬性名名字一樣的做映射,并不區分大小寫。當實體存在基類并在基類中定義了屬性需要映射(如:Id屬性),則需要數據表字段遷就基類,需要將數據庫表的相應列改成與基類的屬性同名。(此處需要說明,我沒研究別的解決方案,如果有請告知)另外的角度看,用ID列為例,建議數據建模時給主鍵列命名時都統一定義為"ID"而不要使用“實體標識+ID后綴”這樣的命名方式。當然外鍵列名是需要用“實體標識+ID后綴”來命名的。


            有關其它的默認規則可以查看:Code First中的約定 http://blog.joycode.com/saucer/archives/2010/10/08/116098.joy

          需要更多EF的文檔支持可以查看MSDNEntity Framework 4.1 http://msdn.microsoft.com/en-us/library/gg696172(v=VS.103).aspx

       

          時間關系寫到這兒,因為本人對EFCode First方式的了解只是皮毛,請各位High Hand批評指正。



      本文出處:http://www.rzrgm.cn/Ryu666/archive/2011/09/18/EFConnectTOExistDB.html

      posted @ 2011-09-18 15:23  黃耀輝  閱讀(6600)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 18禁免费无码无遮挡不卡网站| 99国产午夜福利在线观看| 黄瓜一区二区三区自拍视频| 国产亚洲一二三区精品| 久久久久青草线蕉综合超碰| 欧美人与动欧交视频| 澜沧| 日韩福利片午夜免费观着| 护士张开腿被奷日出白浆| 日韩 高清 无码 人妻| 蜜臀av一区二区三区精品| 精品一区二区亚洲国产| 国产一区二区三区我不卡| 国产成人精品中文字幕| 国产免费高清69式视频在线观看 | 国内精品自国内精品自久久| 欧洲国产成人久久精品综合| 韩国av无码| 日韩亚洲精品中文字幕| 日本中文一区二区三区亚洲| 亚洲男女一区二区三区| 东京热一精品无码av| 国产主播精品福利午夜二区| 熟妇人妻系列aⅴ无码专区友真希 亚洲精品喷潮一区二区三区 | 亚洲色一色噜一噜噜噜| 国产精品成人综合色在线| 午夜免费国产体验区免费的| 202丰满熟女妇大| 先锋影音男人av资源| 在线天堂新版资源www在线下载| 美姑县| 中文精品无码中文字幕无码专区| 亚洲人成电影网站 久久影视| 日本亚洲一区二区精品| 欧洲精品色在线观看| 大乳丰满人妻中文字幕日本| 国产超高清麻豆精品传媒麻豆精品| 亚洲av成人网人人蜜臀| 欧美色欧美亚洲高清在线视频| 成在人线av无码免费看网站直播| 久久成人国产精品免费软件|