EF6导航属性映射空集合而不是null

时间:2014-02-18 13:21:29

标签: c# linq entity-framework

我使用linq实体来获取一对多的关系。 一个客户有很多账户。

            var query = from c in db.Client
                        where c.MetaProps.Deleteflag == 0
                        && c.ContractNumber.Equals(clientNumber)
                        select new
                        {
                            Client = c,
                            Accounts = c.Accounts.Where(a => a.IsActive),  
                        };
            contract = query.FirstOrDefault().Client;

问题是,当数据库中没有帐户时,“帐户”列表为空。有没有办法将其初始化为空列表,例如何时使用.Include()

1 个答案:

答案 0 :(得分:1)

当然,您可以使用空合并运算符。

var query = from c in db.Client
            where c.MetaProps.Deleteflag == 0
            && c.ContractNumber.Equals(clientNumber)
            select new
            {
                Client = c,
                Accounts = c.Accounts.Where(a => a.IsActive) ?? Enumerable.Empty<Account>()  
            };
contract = query.FirstOrDefault().Client;