ORA-00904 偶尔出现无效标识符与 linq 查询

ORA-00904 Occasional Invalid identifier with linq query

我有两个不同的 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;
    }

问题最终成为模型的不同部分,但只是关于 Oracle 风险的一些信息:

第一个查询运行良好,因为它只引用了数据库中具有匹配列的一个特定字段(出于某种原因,oracle 不关心该实例中模型的其余部分)。

第二个查询不起作用,因为它试图从 table 中提取每一列,但模型中缺少一个字段。