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

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

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

      ADO.NET Entity Framework支持多Provider

      2008-12-02 16:39  靈感之源  閱讀(6708)  評(píng)論(13)    收藏  舉報(bào)

      前言

      EF跟其它ORM的做法不一樣,其它ORM是先有Model再自動(dòng)維護(hù)數(shù)據(jù)庫(kù),EF是先有數(shù)據(jù)庫(kù)再自動(dòng)(目前只能手工重建來達(dá)到“刷新”的目的)維護(hù)Model的。相比其它ORM,EF最要命的是目前不“內(nèi)置”切換Provider的支持。但微軟的開發(fā)人員給我們提供了以下思路:

      參考代碼:http://code.msdn.microsoft.com/EFQuerySamples

      參考文章:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3796966&SiteID=1


      具體步驟:

      0.前提:各個(gè)類型的數(shù)據(jù)庫(kù)結(jié)構(gòu)完全一致

      1.正常添加ADO.NET Entity Data Model(edmx文件),如FooMSSQL,查看Model屬性,元數(shù)據(jù)項(xiàng)目處理,默認(rèn)“嵌入輸出程序集中”,改為“復(fù)制到輸出目錄”,這樣就在輸出目錄產(chǎn)生了3個(gè)文件:FooMSSQL.csdl、FooMSSQL.msl和FooMSSQL.ssdl;

      2.如此類推,創(chuàng)建各個(gè)類型的數(shù)據(jù)庫(kù)模型,如FooOracle、FooSQLite等;

      3.對(duì)于各個(gè)不同類型的數(shù)據(jù)庫(kù),csdl、msl這2種文件的內(nèi)容是一致的,差異就在于ssdl文件(特定數(shù)據(jù)庫(kù)結(jié)構(gòu)描述);

      4.把Foo.Designer.cs代碼改名為Entities.cs(名稱可隨便改)并復(fù)制到任意目錄,如Schemas,同樣復(fù)制csdl、msl(只需要一個(gè)數(shù)據(jù)庫(kù)的),最終該目錄應(yīng)該有這些文件:
       a.Entities.cs
       b.Foo.csdl
       c.Foo.msl
       d.FooMSSQL.ssdl
       e.FooOracle.ssdl
       
      5.修改ssdl文件中的Provider和ProviderManifestToken屬性為實(shí)際的值;
       
      6.從項(xiàng)目中排除之前添加的數(shù)據(jù)庫(kù)模型文件(*.edmx);

      7.把Entities.cs包括進(jìn)來,并選擇Foo.csdl、Foo.msl、FooMSSQL.ssdl、FooOracle.ssdl的屬性為復(fù)制到輸出目錄;

      8.在App.config/Web.Config添加各個(gè)數(shù)據(jù)庫(kù)的Provider支持:在connectionStrings字段,你會(huì)發(fā)現(xiàn)之前添加的模型相應(yīng)的ConnectionString已經(jīng)存在,我們不應(yīng)該修改它們,因?yàn)槿绻院笪覀冃薷牧藬?shù)據(jù)庫(kù)結(jié)構(gòu),我們需要重新包含這些edmx文件進(jìn)來并進(jìn)行修改;
       你應(yīng)該復(fù)制這些ConnectionString,改名,并且更改csdl、msl、ssdl的路徑,因?yàn)橹癐DE生成的是輸出到bin目錄,而我們實(shí)際用的是Schemas目錄,如在ASP.NET下:
       metadata=~/bin/Oracle.csdl|~/bin/Oracle.ssdl|~/bin/Oracle.msl
       改為:
       metadata=~/bin/Schemas/Foo.csdl|~/bin/Schemas/FooOracle.ssdl|~/bin/Schemas/Foo.msl
       注意csdl和msl文件名已經(jīng)改變!

      9.最終使用:
          public static string ConnectionString = ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings["ConnectionString"]].ConnectionString;

          public static Entities GetContext
          {
              get
              {
                  Entities ent = new Entities(ConnectionString);
                  ent.Connection.Open();
                  return ent;
              }
          }

       注意:ConnectionString為剛才在App.config/Web.Config中新增的,推薦在AppSettings中記錄當(dāng)前使用的Provider的名稱,然后就可以隨時(shí)切換


      P.S. EF for Oracle
      網(wǎng)站:http://code.msdn.microsoft.com/EFOracleProvider
      下載運(yùn)行,Provider自動(dòng)添加到GAC

      主站蜘蛛池模板: 亚洲一品道一区二区三区| 精品精品亚洲高清a毛片| 国产精品久久自在自线不卡| 777久久精品一区二区三区无码| 手游| 美腿丝袜亚洲综合第一页| 少妇人妻真实偷人精品| 中文字幕无码免费久久| 国产片一区二区三区视频| 四虎在线中文字幕一区| 国产欧美日韩精品丝袜高跟鞋| 国产精品va无码一区二区| 日本久久精品一区二区三区| 国产熟睡乱子伦午夜视频| 亚洲一二三区精品美妇| 国产专区一va亚洲v天堂| 国产精品中文字幕观看| 经典国产乱子伦精品视频| 久久www免费人成看片中文| 亚洲综合中文字幕第一页| 午夜一区欧美二区高清三区| 国产一区二区一卡二卡| 亚洲国产欧美在线看片一国产| 色噜噜噜亚洲男人的天堂| 宾川县| 亚洲国产大片永久免费看| 亚洲日韩性欧美中文字幕| 国产一区二区三区小说| 国产一区二区不卡91| 中文字幕日韩有码一区| 人妻 日韩精品 中文字幕| 久久久久亚洲AV色欲av| 国产精品免费中文字幕| 色综合色天天久久婷婷基地| 国产一区二区三区不卡观| 国产破外女出血视频| 获嘉县| 亚洲欧美偷国产日韩| 国产宅男宅女精品A片在线观看| 精品乱码一区二区三四五区| 欧美人与动交视频在线观看|