我如何在同一simple.data查询中使用和左将

  • 本文关键字:查询 data simple c# simple.data
  • 更新时间 :
  • 英文 :


我正在使用simple.data尝试从我们的数据库构建查询。基本上,结果需要包括来自用户表的某些列以及来自地址表的多个行,以及一个来自实体表的特定列。

Database.Users.FindAll(query)
              .With(Database.Users.Addresses.As("Address"))
              .LeftJoin(Database.Entities).On(Database.Users.ParentEntityId == Database.Entities.EntityID)
              .Select(Database.Users.UserID,
                     Database.Users.FirstName,
                     Database.Users.LastName,
                     Database.Entities.Name.As("ParentEntityName"));

奇怪的是,如果我的查询中没有With语句,这很好(尽管我会缺少地址(,但是有了它,我最终会得到"给定键在字典中不存在"。

还应注意,包括With并排除Database.Entities.Name.As("ParentEntityName")也有效,但我缺少该值。

有什么想法?

结果是左上角,当您在Select语句中指定想要的内容时,请不要一起播放。我最终使用withone语句和左join从桌子上获取整个行,然后从那里获得了整个行 - 不是最优雅的修复程序,但它可以正常工作。

dynamic entity;
Database.Users.FindAll(query)
              .With(Database.Users.Addresses.As("Address"))
              .LeftJoin(Entities.As("Entity"), out entity).On(Users.ParentEntityId == entity.EntityID)
              .WithOne(entity)
              .Select(Database.Users.UserID,
                      Database.Users.FirstName,
                      Database.Users.LastName);

然后,当我将结果转换为列表时,我从简单Query中的"实体"中获得了一个简单记录,其中包含name,这是我想要的值。

相关内容

  • 没有找到相关文章

最新更新