導航屬性是 FreeSql 的特色功能之一,可通過約定配置、或自定義配置對象間的關系。

          導航屬性有 OneToMany, ManyToOne, ManyToMany, OneToOne, Parent 五種配置關系。

          有了導航屬性,多表查詢會非常方便,lambda 表達式中直接使用導航對象點點點,舒服?。?br>
          除了查詢還有更多其他的特性在后續(xù)文章中再介紹。

          自定義導航關系
          //導航屬性,OneToMany [Navigate("song_id")] public virtual List<song_tag>
          Obj_song_tag { get; set; } //導航屬性,ManyToOne/OneToOne [Navigate("song_id")]
          public virtual Song Obj_song { get; set; } //導航屬性,ManyToMany
          [Navigate(ManyToMany = typeof(tag_song))] public virtual List<tag> tags { get;
          set; }
          * 可約定,可不約定;
          * 不約定的,需指定 Navigate 特性關聯(lián);
          * 無關聯(lián)的,查詢時可以指明 On 條件,LeftJoin(a => a.Parent.Id == a.ParentId);
          * 已關聯(lián)的,直接使用導航對象就行,On 條件會自動附上;
          約定配置

          OneToOne 一對一
          class User { public int Id { get; set; } //Id、UserId、User_id public UserExt
          UserExt { get; set; } } class UserExt { public int id { get; set; }
          //Id、UserId、User_id、UserExtId、UserExt_id public User User { get; set; } }
          《OneToOne 一對一,怎么添加數(shù)據?》 <https://github.com/2881099/FreeSql/issues/45>

          ManyToOne 多對一
          class Group { public int Id { get; set; } //Id、GroupId、Group_id } class User {
          public int Id { get; set; } //Id、UserId、User_id public int AGroupId { get; set;
          } public Group AGroup { get; set; } public int BGroupId { get; set; } public
          Group BGroup { get; set; } }
          OneToMany 一對多
          class Group { public int Id { get; set; } //Id、GroupId、Group_id public
          ICollection<User> AUsers { get; set; } public ICollection<User> BUsers { get;
          set; } } class User { public int Id { get; set; } //Id、UserId、User_id public
          int AGroupId { get; set; } public Group AGroup { get; set; } public int
          BGroupId { get; set; } public Group BGroup { get; set; } }
          《OneToMany 一對多,怎么添加數(shù)據?》 <https://github.com/2881099/FreeSql/issues/46>

          Parent 父子
          class Group { public int Id { get; set; } //Id、GroupId、Group_id public int
          ParentId { get; set; } //ParentId、Parent_id public Group Parent { get; set; }
          public ICollection<Group> Childs { get; set; } }
          父子關系,與一對多其實差不多,添加數(shù)據參數(shù)上面的連接;

          ManyToMany 多對多
          class Song { [Column(IsIdentity = true)] public int Id { get; set; } public
          string Title { get; set; } public virtual ICollection<Tag> Tags { get; set; } }
          class Song_tag { public int Song_id { get; set; } public virtual Song Song {
          get; set; } public int Tag_id { get; set; } public virtual Tag Tag { get; set;
          } } class Tag { [Column(IsIdentity = true)] public int Id { get; set; } public
          string Name { get; set; } public int? Parent_id { get; set; } public virtual
          Tag Parent { get; set; } public virtual ICollection<Song> Songs { get; set; }
          public virtual ICollection<Tag> Tags { get; set; } }
          Song、Tag、Song_tag,這三個實體使用了 OneToMany、ManyToOne、Parent、ManyToMany 4種關系。

          系列文章導航

          *
          (一)入門 <https://www.cnblogs.com/FreeSql/p/11531300.html>

          *
          (二)自動遷移實體 <https://www.cnblogs.com/FreeSql/p/11531301.html>

          *
          (三)實體特性 <https://www.cnblogs.com/FreeSql/p/11531302.html>

          *
          (四)實體特性 Fluent Api <https://www.cnblogs.com/FreeSql/p/11531304.html>

          *
          (五)插入數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531306.html>

          *
          (六)批量插入數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531309.html>

          *
          (七)插入數(shù)據時忽略列 <https://www.cnblogs.com/FreeSql/p/11531316.html>

          *
          (八)插入數(shù)據時指定列 <https://www.cnblogs.com/FreeSql/p/11531318.html>

          *
          (九)刪除數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531320.html>

          *
          (十)更新數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531321.html>

          *
          (十一)更新數(shù)據 Where <https://www.cnblogs.com/FreeSql/p/11531324.html>

          *
          (十二)更新數(shù)據時指定列 <https://www.cnblogs.com/FreeSql/p/11531327.html>

          *
          (十三)更新數(shù)據時忽略列 <https://www.cnblogs.com/FreeSql/p/11531334.html>

          *
          (十四)批量更新數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531335.html>

          *
          (十五)查詢數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531339.html>

          *
          (十六)分頁查詢 <https://www.cnblogs.com/FreeSql/p/11531341.html>

          *
          (十七)聯(lián)表查詢 <https://www.cnblogs.com/FreeSql/p/11531346.html>

          *
          (十八)導航屬性

          *
          (十九)多表查詢 <https://www.cnblogs.com/FreeSql/p/11531362.html>

          *
          (二十)多表查詢 WhereCascade <https://www.cnblogs.com/FreeSql/p/11531372.html>

          *
          (二十一)查詢返回數(shù)據 <https://www.cnblogs.com/FreeSql/p/11531376.html>

          *
          (二十二)Dto 映射查詢 <https://www.cnblogs.com/FreeSql/p/11531381.html>

          *
          (二十三)分組、聚合 <https://www.cnblogs.com/FreeSql/p/11531384.html>

          *
          (二十四)Linq To Sql 語法使用介紹 <https://www.cnblogs.com/FreeSql/p/11531392.html>

          *
          (二十五)延時加載 <https://www.cnblogs.com/FreeSql/p/11531395.html>

          *
          (二十六)貪婪加載 Include、IncludeMany、Dto、ToList
          <https://www.cnblogs.com/FreeSql/p/11531404.html>

          *
          (二十七)將已寫好的 SQL 語句,與實體類映射進行二次查詢
          <https://www.cnblogs.com/FreeSql/p/11531416.html>

          *
          (二十八)事務 <https://www.cnblogs.com/FreeSql/p/11531423.html>

          *
          (二十九)Lambda 表達式 <https://www.cnblogs.com/FreeSql/p/11531425.html>

          *
          (三十)讀寫分離 <https://www.cnblogs.com/FreeSql/p/11531430.html>

          *
          (三十一)分區(qū)分表 <https://www.cnblogs.com/FreeSql/p/11531435.html>

          *
          (三十二)Aop <https://www.cnblogs.com/FreeSql/p/11531471.html>

          *
          (三十三)CodeFirst 類型映射 <https://www.cnblogs.com/FreeSql/p/11531543.html>

          *
          (三十四)CodeFirst 遷移說明 <https://www.cnblogs.com/FreeSql/p/11531550.html>

          *
          (三十五)CodeFirst 自定義特性 <https://www.cnblogs.com/FreeSql/p/11531576.html>

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關注微信

                日本一区不卡 | 欧美三级电影院 | 丰满秘书办公室猛烈进出在办公室 | 68日本xxxxxxxxx24 | 乱子伦国产精品www |