Попытка фильтрации по типу Nullable с помощью деревьев выражений

Я вставил все мое тестовое приложение ниже. Это'довольно компактный, поэтому я надеюсь, что этоне проблема. Вы должны иметь возможность просто вырезать и вставить его в консольное приложение и запустить его.

Мне нужно иметь возможность фильтровать один или несколько объектов Person свойства, и я нене знаю, какие из них до времени выполнения. Я знаю, что это обсуждалось повсеместно, и я изучил и использую такие инструменты, какPredicateBuilder & Динамическая библиотека Linq но обсуждение вокруг них имеет тенденцию сосредотачиваться больше на сортировке и упорядочении, и каждый из них боролся со своими проблемами, сталкиваясь с типами Nullable. Поэтому я подумал, что постараюсь создать хотя бы дополнительный фильтр, который бы учитывал эти конкретные сценарии.

В приведенном ниже примере я пытаюсь отфильтровать членов семьи, которые родились после определенной даты. Дело в том, что поле DateOfBirth на фильтруемых объектах является свойством DateTime.

Последняя ошибка, которую я получаю,

Оператор приведения между типами не определенSystem.String» а также 'System.Nullable`1 [System.DateTime].

В чем проблема. Я пытался использовать несколько разных способов приведения и конвертации, но с разной степенью неудачи. В конечном итоге это будет применено к базе данных EF, которая также отказывается от методов преобразования, таких как DateTime.Parse (-).

Любая помощь будет принята с благодарностью!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List people = new List();
        people.Add(new Person { FirstName = "Bob", LastName = "Smith", DateOfBirth = DateTime.Parse("1969/01/21"), Weight=207 });
        people.Add(new Person { FirstName = "Lisa", LastName = "Smith", DateOfBirth = DateTime.Parse("1974/05/09") });
        people.Add(new Person { FirstName = "Jane", LastName = "Smith", DateOfBirth = DateTime.Parse("1999/05/09") });
        people.Add(new Person { FirstName = "Lori", LastName = "Jones", DateOfBirth = DateTime.Parse("2002/10/21") });
        people.Add(new Person { FirstName = "Patty", LastName = "Smith", DateOfBirth = DateTime.Parse("2012/03/11") });
        people.Add(new Person { FirstName = "George", LastName = "Smith", DateOfBirth = DateTime.Parse("2013/06/18"), Weight=6 });

            String filterField = "DateOfBirth";
            String filterOper = "

Ответы на вопрос(2)

Ваш ответ на вопрос