Анонимный тип не совпадает с кортежем.
Анонимные типы предоставляют удобный способ инкапсулировать набор свойств только для чтения в один объект без необходимости явного сначала определите тип. Имя типа генерируется компилятором и недоступно на уровне исходного кода. Тип каждого свойства определяется компилятором.
C# кортежи - это типы, которые вы определяете с использованием облегченного синтаксиса. Преимущества включают в себя более простой синтаксис, правила для преобразования на основе числа (называемого количеством элементов) и типов элементов, а также согласованные правила для копий, тесты на равенство и назначения. Как компромисс, кортежи не поддерживают некоторые объектно-ориентированные идиомы, связанные с наследованием.
Кроме того, вы не можете вернуть анонимный тип из функции. В вашем случае вы должны вернуть новый кортеж из LINQ, как показано в коде ниже:
private (string? HotemName, string? TransportationName) Get3rdPartyHotelTranporationNames(int customerID, int supplierID, System.DateTime? startDate, System.DateTime? endDate)
{
return (from res in reservations
join trans in _unitOfWork.tbl_reservations on res.id_pk equals transRes.id
where trans.status == 4
select (res.Name, trans.Name)
).Take(1).Single();
}