我在MongoDB DAL类中设置了方法。
Message
我想做一些简单的事情,比如
public IQueryable<MyModel> Retrieve(Expression<Func<MyModel, bool>> expression)
{
if (!BsonClassMap.IsClassMapRegistered(typeof(MyModel)))
{
DoMapping();
}
var client = new MongoClient(MongoConnectionString);
var database = client.GetDatabase("DatabaseName");
var documents = database.GetCollection<MyModel>("MyModelTable");
return documents.AsQueryable<MyModel>().Where(expression);
}
但是,每次尝试时,都会收到错误消息:
例外 在MongoDB.Driver.dll中输入'System.InvalidOperationException' 但未在用户代码中处理
其他信息:{document} {SomeDateProperty} .Date不是 支撑。
我正在使用官方C#驱动程序版本2.2.4.26。
有没有办法只查询日期?我见过有关使用DbFunctions.Truncate的帖子,但这是在EntityFramework库中,我想远离它。
答案 0 :(得分:3)
使用Date
我遇到了同样的问题:
想法是使用两个边框(DateTime.Date
也是DateTime
但是0小时0分钟......第二天也是0小时0分钟......)。< / p>
DateTime currentDayStart = DateTime.Now.Date;
DateTime currentDayEnds = DateTime.Now.Date.AddDays(1);
var result = Retrieve(a => a.SomeDateProperty >= currentDayStart && a.SomeDateProperty < currentDayEnds);
它适用于我。