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