注意:MappingField 也可以附加在一对多和多对多上使用作为追加条件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//指定关系一对一和指定关一对多用法一样的 //自定义一对一 //it.SchoolA.MappingField(z=>z.SchoolId,()=>it.SchoolId).ToList() //自定义一对多 //it.SchoolList.MappingField(z=>z.SchoolId,()=>it.SchoolId).ToList() //具体用例 var list=db.Queryable<StudentA>() .Includes(it => it.Books .MappingField(z=>z.studenId,()=>it.StudentId) //可以多个多字段 .MappingField(..) .Where(z=>z.BookId==1)//还能在加条件过滤 .ToList() ) .ToList(); public class StudentA { [SugarColumn(IsPrimaryKey = true)] public int StudentId { get; set; } public string Name { get; set; } [Navigate(NavigateType.Dynamic, null)] //自定义关系映射 public List<BookA> Books { get; set; } //只能是null 不能赋默认值 //如果用到:自定义 一对一 请级到 5.0.7.8-preview02版本用法一样 //用法和一对多一模一样升级就行了 } //请升级到5.0.7.8 preview02版本 //自定义导航也支持多个层级 结构:StudentA[i].Books[i].bookChilds var list=db.Queryable<StudentA>() .Includes(it => it.Books.MappingField(z=>z.studenId,()=>it.StudentId).ToList(), c=> c.bookChilds .MappingField(z=>z.BookId,()=>c.BookId).ToList() ) .ToList(); |