LInq查询返回值特定字段

时间:2018-06-08 10:45:01

标签: c# .net linq

我有两张表如下:

CatTable

  • CatCode
  • CatName

DogTable

  • DogCode
  • CatCode
  • NameCode

所以我想写下一个查询,其中返回表格中所有数据的列表 CatTable 如果在表 DogTable 中加上“ CatCode ”字段中的值与 CatTable.CatCode 相同且字段为“ NameCode” “为空,则应在字段” DogTable.CatCode “中返回值” false

示例

var query = from c in CatTable 
            from d in DogTable
            where c.CatCode == d.CatCode 
            select new { c.CatCode, c.CatName, d.CatCode }

你对此有什么建议吗?

1 个答案:

答案 0 :(得分:2)

一个简单的版本是使用Any返回最后一个字段所需逻辑的布尔值

var query = CatTable.Select(ct => new 
{ 
    CatCode = ct.CatCode, 
    CatName = ct.CatName, 
    DogCatCode = !DogTable.Any(dt => dt.CatCode == ct.CatCode && dt.NameCode == "")
});