У меня самая странная ошибка сопоставления в LINQ-SQL. У меня есть этот запрос, который выполняет лево-внешнее соединение по 2 параметрам. Из запроса я хочу извлечь столбец для левой объединенной таблицы, если она НЕ пуста, и в противном случае из первой таблицы. Поле, о котором идет речь, является char , и обе таблицы имеют одинаковые параметры сортировки. Код LINQ показан ниже, и я выделил жирным шрифтом строку, которая вызывает ошибку.
from contentList in dc.ContentList
join portalPriceClass in dc.PortalContentPriceClass
on contentList.ContentID equals portalPriceClass.ContentID
into ppc
from portalSpecificPriceClass in ppc.Where(portalPriceClass =>
portalPriceClass.PortalID==portalId).DefaultIfEmpty()
where contentListPriority.PortalID == portalId
select new
{
ID = content.ID,
PriceClass = (portalSpecificPriceClass == null) ? contentGame.PriceClass : portalSpecificPriceClass.PriceClass
};
К сожалению, я получаю следующую ошибку и не могу найти ничего, чтобы объяснить это:
System.Data.SqlClient.SqlException: неявное преобразование значения char в char не может быть выполнено, так как сопоставление значения не разрешено из-за конфликта сопоставления.