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

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

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

      使用Entity Framework和WCF Ria Services開發(fā)SilverLight之3:Map

      在上一篇中《使用Entity Framework和WCF Ria Services開發(fā)SilverLight之2:POCO》,我們將映射交給edmx文件處理。如下:

      image

      該文件是由EF框架自動生成的,通過查看原始文件,我們可以看到EF框架為我們建立了實體類間的各種映射。現(xiàn)在,借助于EF4.1框架,我們可以進行更方便的進行手動映射。

       

      1:清理SchoolData

      首先,刪除ModelSchool.edmx。

      其次,由于不再使用edmx映射,我們將SchoolContext中數(shù)據(jù)庫連接串,換成傳統(tǒng)的連接串。即:

      image

      上圖中的紅框部分,換成:

      image

      相信你和我一樣,非常熟悉這樣的連接字符串。

      二:手動建立Map

      在SchoolModel中,我們建立一個Mapping子目錄,將所有的映射類全部建立在這個位置。如DepartmentMap:

          public class DepartmentMap : EntityTypeConfiguration<Department>
          {
              public DepartmentMap()
              {
                  this.HasKey(t => t.DepartmentID);
                  this.ToTable("Department");
              }
          }

      需要注意的一點,理論上,我們可以借助于Map,生成完全意義上的Poco,因為我們使用EF4.1框架,通過重寫DbContext類型的OnModelCreating方法,如下:

              protected override void OnModelCreating(DbModelBuilder modelBuilder)
              {
                  modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
                  modelBuilder.Configurations.Add(new DepartmentMap());
              }

      我們完全可以動態(tài)為POCO實體類生成EF所需要的各種映射關(guān)系。但是,很遺憾,在這里我們使用的Ria Service。在使用Ria Service的使用,必須要為Poco指定一個Key(這是一個BUG?),否則,我們會得到這樣的一個錯誤:

      錯誤    2    The entity 'Department' in DomainService 'DomainServiceSchool' does not have a key defined. Entities exposed by DomainService operations must have at least one public property marked with the KeyAttribute.    SilverlightApplication20110612

      而如果我們在使用別的應用,我指的是僅僅使用EF,則不會有這樣的編譯期錯誤出現(xiàn)。

      所以,這是一個小小的瑕疵,請為POCO使用KEY特性。當然,別的映射關(guān)系我們可以在Map類中處理。

      最后的運行效果為:

      image

      三:使用Entity Framework Power Tools CTP1自動生成POCO和映射

      也許是考慮到手動生成POCO和映射太繁瑣了,現(xiàn)在微軟為我們提供了這樣一個工具為我們自動生成POCO和映射。你需要到這里去下載它:http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d

      安裝完畢后,請首先生成一個C#類庫項目,然后在這個類庫項目上點右鍵,我們會發(fā)現(xiàn)多了一個菜單項:

      image

      然后,在下一界面,輸入相應參數(shù):

      image

      注意:一定要注冊圖中的紅框部分。請選擇第一項。如果我們使用sql server身份認證,則極有可能出現(xiàn)如下錯誤:

      System.Data.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string. ---> System.InvalidOperationException: This operation requires a connection to the 'master' database. Unable to create a connection to the 'master' database because the original database connection has been opened and credentials have been removed from the connection string. Supply an unopened connection. ---> System.Data.SqlClient.SqlException: 用戶 'sa' 登錄失敗。

      有博友曾經(jīng)對此問題進行過討論,但是仍舊無解,具體請見博文及文后回復《Entity Framework Code First使用者的福音 --- EF Power Tool使用記之二(問題探究)

      最后,該工具為我們生成的代碼大致如下:

      image

      如果對手動映射感興趣,還可以參考下列文章:

      1:http://weblogs.asp.net/manavi/archive/2010/12/19/entity-association-mapping-with-code-first-one-to-one-shared-primary-key-associations.aspx

      2:http://www.rzrgm.cn/haogj/archive/2011/05/06/2038965.html

      本文源碼下載:SilverlightApplication20110617.zip

      posted @ 2011-06-17 22:07  陸敏技  閱讀(4736)  評論(8)    收藏  舉報
      Web Counter
      Coupon for Contacts
      主站蜘蛛池模板: 精品国产AV最大网站| 亚洲乱码国产乱码精品精| 久久精品国产久精国产69| 国产成人99亚洲综合精品| 成年午夜免费韩国做受视频| av偷拍亚洲一区二区三区| 国产狂喷潮在线观看| 国产gaysexchina男外卖| 东京热人妻丝袜无码AV一二三区观 | 国产精品亚洲欧美大片在线看| 欧美18videosex性欧美黑吊| 国产成人高清在线重口视频 | 色猫咪av在线观看| 色窝窝免费播放视频在线| 精品国产女同疯狂摩擦2| 东京热大乱系列无码| 99久久er热在这里只有精品99| 亚洲午夜香蕉久久精品| 国产精品视频一品二区三| 精品无码国产污污污免费| 亚洲精品国产精品乱码不| 中文字幕结果国产精品| 中文字幕无线码免费人妻| 亚洲国产精品日韩AV专区| 97超级碰碰碰久久久久| 国产免费高清69式视频在线观看| 国产69精品久久久久人妻刘玥 | 亚洲高清偷拍一区二区三区| 亚洲精品天天影视综合网| av中文字幕在线二区| 国产极品粉嫩馒头一线天| 国产成人AV一区二区三区无码| 另类 专区 欧美 制服| 一区二区三区四区精品黄| 女人与牲口性恔配视频免费| 亚洲中文字幕无码爆乳app| 无码天堂亚洲国产AV| 精品偷拍被偷拍在线观看| 色翁荡熄又大又硬又粗又视频| 亚洲激情一区二区三区在线| 中文字幕日韩有码一区|