【发布时间】:2019-07-13 10:30:12
【问题描述】:
我有两个不同的 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;
}
【问题讨论】:
标签: c# oracle entity-framework linq data-access