Telerik OpenAccess - поиск с непостоянным свойством

Я использую Telerik OpenAccess и SQL Server в проекте, и мне нужно иметь возможность искать, какого возраста кто-то будет на определенную дату. Проблема, с которой я сталкиваюсь, заключается в том, что дата рождения человека хранится в одной таблице, а дата для сравнения - в другой таблице, что не позволяет мне использовать вычисляемый столбец. Однако они соединены вместе, поэтому я могу рассчитать возраст, создав собственное непостоянное свойство в частичном классе следующим образом:

public partial class Student
{
    [Telerik.OpenAccess.Transient]
    private int? _ageUponArrival;
    public virtual int? AgeUponArrival
    {
        get
        {
            try
            {
                var dob = DateTime.Parse(this.StudentProfiles.First().Person.YearOfBirth);
                var programStart = (DateTime)(this.StudentPrograms.First().ProgramStart);
                this._ageUponArrival = programStart.Year - dob.Year;
                if (dob > programStart.AddYears(-(int)(this._ageUponArrival)))
                {
                    (this._ageUponArrival)--;
                }
            }
            catch (Exception e)
            {
                this._ageUponArrival = null;
            }

            return _ageUponArrival;
        }
        set { }
    }
}

Пожалуйста, игнорируйте, как плохо настроены таблицы, это то, что я унаследовал и не могу изменить в данный момент. Проблема этого подхода заключается в том, что свойство недоступно для поиска с помощью Linq. Я знаю, что мог бы создать представление, которое сделало бы это для меня, но я бы предпочел не поддерживать представление только для этого. Есть ли вообще способ создать вычисляемое свойство через Telerik, которое будет рассчитываться на сервере БД таким образом, чтобы его можно было найти?

1 ответ

Решение

Похоже, что это невозможно в данный момент. http://www.telerik.com/community/forums/orm/linq-questions/dynamic-query-with-extended-field.aspx

Другие вопросы по тегам