У меня есть два разных выражения linq, которые ссылаются на один и тот же столбец в базе данных.Один работает просто отлично, но другой выдает недопустимое исключение идентификатора (ORA-00904).
Большинство вопросов, которые я обнаружил, содержат голые SQL-запросы с некоторыми синтаксическими ошибками.Другие имеют отношение к модели сущностей, но, видя, что в одном запросе проблема не возникает, я не уверен, что проблема в модели.
Тот, который работает:
public List<DateTime> GetAvailableDates()
{
var retData = new List<DateTime>();
using (var context = new CASTDbContext())
{
var result = context.SomeDataEntity.Select(x => x.CAPTURE_DATE).Distinct().ToList();
if(result != null && result.Count > 0)
{
retData = result;
}
}
return retData;
}
Тот, который не работает:
public List<SomeDataModel> GetSomeDataByDate(DateTime date)
{
var retData = new List<SomeDataModel>();
using (var context = new SomeDbContext())
{
var result = context.SomeDataEntity
.Where( y => DbFunctions.TruncateTime(y.CAPTURE_DATE) == date.Date).ToList(); // the line that's throwing the exception
if (result != null && result.Count > 0)
{
foreach (var item in result)
{
retData.Add(mapper.Map<SomeDataModel>(item));
}
}
}
return retData;
}