首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle.ManagedDataAccess在DbFunctions.CreateDate上爆炸

Oracle.ManagedDataAccess在DbFunctions.CreateDate上爆炸
EN

Stack Overflow用户
提问于 2019-06-25 22:39:07
回答 1查看 89关注 0票数 1

我有一个EF查询,其中我需要在DateTime的实体集合中获取每月的第一天。这是使用Linq to Entities (如果是Linq to Objects,我只需要实例化一个新的DateTime)。这基本上是我使用的代码:

代码语言:javascript
复制
dbContext.Calendar
    .Select(date => DbFunctions.CreateDateTime(date.Year, date.Month, 1, 0, 0, 0))
    .ToList();

这将导致以下错误:ORA-01841: (full) year must be between -4713 and +9999, and not be 0

但是,看看即将到来的数据,我能看到的最接近于0的年份是2000年,但即使我将其限制在非2000年,也会发生这种情况。

此外,dbContext.Calendar.ToList();运行得很好,但它不能让我在这个月的第一个月。

这是一个已知的bug吗?有没有更好的方法来找到这个月的第一个月?有没有更好的方法将Linq中的DateTimes实例化为Oracle DB的实体?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 22:30:38

我总是讨厌答案就在我面前,我一次又一次地错过它。在本例中,解决方案是AsEnumerable()。在此之后,您将使用Linq to Objects,而不是Linq to Entities,因此您可以像往常一样实例化DateTime。

代码语言:javascript
复制
dbContext.Calendar
    .AsEnumerable()
    .Select(date => new DateTime(date.Year, date.Month, 1))
    .ToList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56756563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档