Я использую Visual Studio 2019;ASP.Net Core 2.1.
Я работаю над веб-приложением по резервированию внутреннего устройства для клиента.Я получаю странное сообщение об исключении:
Ошибка преобразования при преобразовании значения varchar 'False' в тип данных int
Я исключил раздел select new CalendarData
комментируя различные назначения в разных кусках.Я исключил предложение where
аналогичным образом, закомментировав фильтры по одному.
try {
reservations = (
from reservation in reservationsContext.Reservations
join reservationToBgColor in reservationsContext.ReservationToBgColor
on new {
id = reservation.Id,
user = admin ? myUserName : ""
} equals new {
id = reservationToBgColor.ReservationId,
user = reservationToBgColor.AdminNetid.Trim().ToLower()
} into resColorBucket
from resColor in resColorBucket.DefaultIfEmpty()
where reservation.Device.ToUpper().Split(
'.',
StringSplitOptions.RemoveEmptyEntries
)[0].Trim().Equals(myMachine)
&& reservation.StartDate < myEnd
&& reservation.EndDate >= myStart
select new CalendarData {
...
}
).ToList();
} catch (Exception e) {
throw new Exception(e.Message);
}
Это оставляет «левое соединение».В частности, это
user = admin ? myUserName : ""
в первом предложении.Содержимое этой строки:
user: строка в строящемся анонимном объекте
admin: bool, переменная, внешняя по отношению к запросуэто помечает, если вызывающий метод - "admin" или нет.
myUserName: строка, переменная, внешняя по отношению к запросу, которая либо пуста, либо содержит имя пользователя.
Почему что-то конвертируется в int?Чего мне не хватает?