NHibernate中的QueryOver,子节点为nullable

 yuanyuan 发布于 2023-02-13 19:57
  • php
  • 1 个回答
    • 解决方案可能是这样的:

      // these will server as fully-type representatives, and aliases
      Shop shop = null;
      City city = null;
      MyDTO dto = null;
      
      // shop query
      var query = session.QueryOver<Shop>(() => shop);
      // if needed a reference to criteria of the city
      var cityPart = query.JoinQueryOver(() => shop.City // reference
          , () => city // alias
          , JoinType.LeftOuterJoin); // left join
      
      // SELECT Clause
      query.SelectList(list => list
          .Select(() => shop.Id)
              .WithAlias(() => dto.Id)
          .Select(() => shop.Name)
              .WithAlias(() => dto.Name)
      
          // Conditional here
          .Select(Projections.Conditional(
                      Restrictions.Where(() => city.NameES== null),
                      Projections.Constant("---", NHibernateUtil.String),
                      Projections.Property(() => city.NameES)
              ))
              .WithAlias(() => dto.NameEs)
          );
      
      var result = query
          .TransformUsing(Transformers.AliasToBean<MyDTO>())
          .List<MyDTO>();
      

      2023-02-13 20:01 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有