【发布时间】:2015-05-24 20:08:20
【问题描述】:
我在我的数据库中保存了一个dynamic 对象,但我也想将它作为动态对象检索。如何才能做到这一点?我是这样试的:
public dynamic GetItemById(ObjectId id)
{
dynamic result = Db.GetCollection<dynamic>("Items").Find(x => x.Id == id).FirstOrDefaultAsync().Result;
return result;
}
但这给了我以下错误:
CS1963 表达式树可能不包含动态操作
我知道这可以通过使用类型化对象而不是动态对象来解决。但我不想使用任何类型化的对象,因为这违背了使用像 MongoDB 这样的 NoSQL 数据库的全部目的(或者至少,恕我直言)。
我如何通过Id 或任何其他属性使用dynamic 对象查询我的集合?
【问题讨论】:
-
您使用什么版本的 C# 驱动程序? AFAIK,C# 驱动程序 dynamic,但看看this answer,也许这就是你要找的——尤其是最后一条提到
ExpandoObject的评论。 -
@felix-b 我使用的是 2.0。这就是为什么我也能够首先保存
dynamic对象:) 尝试使用ExpandoObject进行此操作,但您似乎也无法使用Filter进行查询。