在IFindFluent . sortby块中使用条件子句

本文关键字:条件 子句 IFindFluent sortby | 更新日期: 2023-09-27 18:02:26

我正在尝试将条件排序应用于查找,如下所示:

var findFluent = Collection.Find (...)
    .SortBy (record => record.IsActive)
    .SortBy (record => record.Client != null
      ? record.Client.Profile.FirstName 
      : record.Profile.FirstName);

但是,我收到以下错误:

"无法确定记录的序列化信息=> IIF((记录。= null), record.Client.Profile。FirstName, record.Profile.FirstName)。"

我是否必须在问题中的一个类上添加/实现IBsonDocumentSerializer,或者此操作不可能?

在IFindFluent . sortby块中使用条件子句

最后,我只是根据条件中的逻辑添加了一个新的.SortBy()子句:

var findFluent = Collection.Find (...)
   .SortBy (record => record.IsActive)
   .SortBy (record => record.Client.Profile.FirstName) 
   .SortBy (record => record.Profile.FirstName);

如果值为空或不能求值,驱动程序似乎忽略了排序。