我有两个类似的查询,需要将union应用于它们。 第一个查询的一部分如下所示:
var query1 = from contract in ContractRepo.GetAll()
(lots of joins)
select new ContractViewModel(){
(lots of fields)
Attachments = null
}
第二个查询的一部分:
var query2 = from com in CommRepo.GetAll()
join comAtt in AttachmentRepo.GetAll() on
com.Id equals comAtt.comId into att
select new ContractViewModel(){
(lots of fields),
Attachment = from a in att
select new AttachmentViewModel()
{
(some fields)
}
}
var query = query1.Union(query2);
问题在于附件字段,其类型为IEnumerable。 我无法分配null或初始化空列表,因为我得到了异常。我无法从第一个查询中删除此字段,因为联合不起作用。
有什么建议吗?
答案 0 :(得分:0)
使用默认值初始化属性,不要设置null:
class ContractViewModel
{
public IEnumerable<AttachmentViewModel> Attachments {get; set;} = Enumerable.Empty<AttachmentViewModel>();
}