我尝试将条件SortBy应用于find,如下所示:
var findFluent = Collection.Find (...)
.SortBy (record => record.IsActive)
.SortBy (record => record.Client != null
? record.Client.Profile.FirstName
: record.Profile.FirstName);
但是,我收到以下错误:
"无法确定记录的序列化信息=> IIF((record.Client!= null),record.Client.Profile.FirstName,record.Profile.FirstName)。"
我是否必须在其中一个类上添加/实施 IBsonDocumentSerializer ,或者此操作无法进行?
答案 0 :(得分:1)
我最终只是根据条件中的逻辑添加了一个新的.SortBy()子句:
var findFluent = Collection.Find (...)
.SortBy (record => record.IsActive)
.SortBy (record => record.Client.Profile.FirstName)
.SortBy (record => record.Profile.FirstName);
如果值为null或无法计算,驱动程序似乎会忽略排序。