Я получаю это сообщение об ошибке при загрузке всех сотрудников при загрузке сотрудников в форме dataGridView.
"LINQ to Entities не распознает метод метода int32 CalculateAge (Int32) ', и этот метод нельзя перевести в выражение хранилища"
Так я их заполняю в dataGridView
private void LoaddEmployees() {
try
{
db = new EmployeeEntities();
var employees = (from u in db.Users
select new
{
EmployeeId = u.EmployeeId,
UserName = u.UserName,
FirstName = u.FirstName,
LastName = u.LastName,
Birthday = u.Birthday,
Age = CalculateAge(u.EmployeeId) // Calling CalculateAge method
}).ToList();
dgvEmployeesList.DataSource = employees;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
А вот мой метод CalculateAge, с которым у меня проблема. Сам расчет (математика) работает, но при загрузке dataGridview выдается ошибка.
private int CalculateAge(int employeeId) {
int age;
var employeeAge = db.Users.Where(x => x.EmployeeId == employeeId).FirstOrDefault();
DateTime empBirthday = Convert.ToDateTime(empAge.Birthday);
DateTime today = DateTime.Today;
age = today.Year - empBirthday.Year;
if (empBirthday > today.AddYears(-age))
age--;
return age;
}
При загрузке страницы появляется сообщение об ошибке:
Пожалуйста, мне нужна ваша помощь, чтобы решить эту проблему. Я действительно не понимаю, что не так с моим кодом.