我构建了LINQ表达式,然后使用实体框架使用IQueryable
扩展方法ToArrayAsync
执行。
value(System.Data.Entity.Core.Objects.ObjectQuery`1[Person]).MergeAs(AppendOnly).Where(currentValue => (currentValue.PersonId == 111)).SelectMany(Param_0 => Param_0.Friends)
value(System.Data.Entity.Core.Objects.ObjectQuery`1[Person]).MergeAs(AppendOnly).Where(currentValue => (currentValue.PersonId == 111)).Select(Param_0 => Param_0.FirstName)
我的问题是:当该人根本不存在或该人存在但其朋友是空集合时,我现在得到相同的结果,如果有什么方法来区分这两种情况?人根本不存在vs人存在但他的朋友是一个空集合。不打算像第一人称优先那样执行IQueryable
两次。
如果属性是单一值,如FirstName
,同样的问题。
是。您可以使用Select
(在Where()
之后)将Person
对象投影为一个匿名类型,该类型包含Person
对象以及它是否存在(或任何其他Person
字段/属性)。
如果你分享你的差异化计划,我可以分享更多关于如何实现这一目标的细节。