EF Core 'The DbFunction' ÉmpContext.fnGetEmployeeEligibility 'имеет недопустимый тип возвращаемого значения' ÉmpMaster 'при вызове возвращающей табличное значение функции - PullRequest
0 голосов
/ 14 июля 2020

У меня есть функция с табличным значением в SQL Server fnGetEmployeeEligibility, которая принимает EmpId и на основе некоторых вычислений возвращает набор результатов с этими столбцами:

  • EmpId (int)
  • IsEligibleForPromotion (bit)
  • IsEligibleForHike (bit)
  • IsEligibleForRelocation (bit)
  • IsEligibleForRemote (bit)
  • IsEligibleForSuperWallet (bit)

Функция SQL работает нормально, и я ее протестировал. Теперь O нужно вызвать эту функцию в моем приложении, и я использую EF Core

Это вызывает ошибку:

DbFunction 'ÉmpContext.fnGetEmployeeEligibility' имеет недопустимый тип возврата ' ÉmpMaster '. Убедитесь, что тип возвращаемого значения может быть отображен текущим поставщиком '

Public void CheckEligiblity(int empId)
{
    var result = _empContext.fnGetEmployeeEligibility(empId);
}

В моем EmpContext классе

[DBFunction("fnGetEmployeeEligibility","emp")]
Public EmpMaster fnGetEmployeeEligibility(int empId)
{
    EmpMaster empM = new EmpMaster();
    return empM;
}

Я создал настраиваемый класс EmpMaster, который имеет свойства, отображающие функцию fnGetEmployeeEligibility:

Public Class EmpMaster
{
    Public int EmpId { get; set; }
    Public bool IsEligibleForPromotion { get; set; }
    Public bool IsEligibleForHike { get; set; }
    Public bool IsEligibleForRelocation { get; set; }
    Public bool IsEligibleForRemote { get; set; }
    Public bool IsEligibleForSuperWallet { get; set; }
}
...