【缺陷】多表查询,主表取全部字段,子表取部分字段缺陷。 返回

C#论坛 老数据
5 2040
该叫什么 林子? 发布于2019/12/4
悬赏:20 飞吻

如下,文档中有这样一段:

var list = db.Queryable<Student, School>((st, sc) => new object[] {
        JoinType.Left,st.SchoolId==sc.Id})
      .Select((st,sc)=>new{Id=st.Id,Name=st.Name,SchoolName=sc.Name}).ToList();

缺陷:选取字段多的时候太麻烦


或是:

var list3 = db.Queryable()
.JoinTable((s1, s2) => s1.sch_id == s2.id)
.Where(s1 => s1.id <= 3)
.Select<V_Student>("s1.*,s2.name SchoolName")
.ToList();

缺陷:没有强类型,变更字段名后容易出错。


希望新增这样的一个方法,解决上面2个缺点

var list3 = db.Queryable()
.JoinTable((s1, s2) => s1.sch_id == s2.id)
.Where(s1 => s1.id <= 3)

.Select<V_Student>((rs,s1,s2)=>{

    rs.SchoolName = s2.name;

    return rs;

})

.ToList();



热忱回答5

  • .Select<V_Student>().ToList()

    0 回复
  • 林子? 林子? VIP0
    2019/12/4

    @fate stay night:特性声明不考虑,实体友好字段的名称下不考虑。理由很简单,1,不想模型成对sqlsugar有依赖,考虑移植问题。

    0 回复
  • 林子? 林子? VIP0
    2019/12/4

    @fate stay night:2.就是要在不规则的名称下实现映射

    0 回复
  • @林子?:sqlsugar一直支持自定义特性的 ,所以你不用这么麻烦

    0 回复
  • 你想用EF特性也可以你 自已去写MAPPER代码

    0 回复