Аргумент 2: невозможно конвертировать из 'bool' в 'System.DateTime?' - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать диапазон данных между двумя датами: Начало и Конец.

И для этого у меня есть следующий запрос:

public DateTime CreatedAt { get; set; }

private IQueryable<Alert> GetAlerts(int organisationId, DateTime? beginDate = null, DateTime? endDate = null,  bool includeDone = false)
{
    var query = 
        _patientDbContext.Alerts
            .Where(i => i.OrganisationId == organisationId && i.CreatedAt = endDate.ToString() <= beginDate.ToString());

    if (!includeDone)
    {
       query = query.Where(i => !i.IsDone);
    }

    query = query.OrderBy(i => i.Deadline);

    return query;
}

, но я получаю эту ошибку:

Аргумент 2: невозможно преобразовать 'bool' в 'System.DateTime?'

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Операция, которую вы делаете на Created, неверна. Измените его следующим образом.

var query = _patientDbContext.Alerts
            .Where(i => i.OrganisationId == organisationId && (i.CreatedAt < endDate &&  i.CreatedAt > beginDate));
0 голосов
/ 26 марта 2020

Это потому, что у вас есть назначение (символ =) в вашем Where * предложении

i.CreatedAt = endDate.ToString() <= beginDate.ToString()

Что вы хотите сделать, предположим, что CreatedAt является DateTime:

var query = _patientDbContext.Alerts.Where(i =>
    i.OrganisationId == organisationId &&
    (beginDate == null || i.CreatedAt => beginDate.Value) &&
    (endDate == null || i.CreatedAt <= endDate.Value)
);
...