【发布时间】:2014-03-18 12:22:43
【问题描述】:
我遇到了一个连接记录为空的 linq 查询问题。
我有 3 个模型:
地点、公司和人员。
- 一个人必须在一家公司工作
- 一个人可能只有一个位置
- 一个公司可能有多个人
我正在使用以下 LINQ 查询来检索特定公司所有人员的所有位置的不同列表:
locations =
db.Companies.Where(c => c.Name == company.Name)
.SelectMany(c => c.People)
.Select(p => p.Location)
.Distinct()
.ToList();
如果从此查询中检索到的 Peron 没有位置(位置对于人员来说是可选的),就会出现问题。
在这种情况下,以下获取每个位置名称的查询由于未将对象引用设置为对象而失败:
locations.Select(g => g.Name).ToList()
如何更改上述行以忽略检索到的人员记录没有位置的记录?
【问题讨论】:
-
当你说一个Person没有位置的时候,你的意思是这个属性是null,还是一个空字符串?
-
抱歉,应该澄清一下 - 空