【问题标题】:DataService query get NULL entries form left joinDataService 查询从左连接中获取 NULL 条目
【发布时间】:2018-03-08 17:10:36
【问题描述】:

我有一个简单的 SQL 查询,我正在尝试将其转换为 linq。但我不断得到

“……不支持”

查询是:

SELECT HARDWARE_ID, HWName, HWTyp_FK from T_HARDWARE
left join T_SWInstalled on T_HARDWARE.HARDWARE_ID = T_SWInstalled.SIHardware_FK
and SISWVerzeichnis_FK = 213
where SWInstalled_id is null

我对 linq 的尝试:

var cni = from hardware in _context.T_HARDWARE
          where hardware.T_SWInstalled.Where(si => si.SISWVerzeichnis_FK == _softwareId) == null
          select new InstalledOnListItem(hardware.HARDWARE_ID, hardware.HWName);

这实际上是否只有使用原始 SQL 才能实现?谢谢

【问题讨论】:

  • 看看左外连接here的语法。也许它有帮助:)
  • @RigertaDemiri 使用 DataService 时不支持语法

标签: c# sql-server dataservice


【解决方案1】:

使用连接语法:

var query =
   from hardware in _context.T_HARDWARE
   join sw in  _context.T_SWInstalled
   on new {
        JoinProperty1 = hardware.HARDWARE_ID,
        JoinProperty2 = sw.SISWVerzeichnis_FK
          }
   equals
      new { 
        JoinProperty1 = sw.SIHardware_FK,
        JoinProperty2 = 213
          }
   where sw.SWInstalled_id == null
   select new InstalledOnListItem(hardware.HARDWARE_ID, hardware.HWName);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-01-23
  • 2019-06-17
  • 2016-05-02
  • 2014-09-24
  • 2018-04-02
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多