gpt4 book ai didi

c# - 使用 MongoDB C# 驱动程序 : Wrapped or Un-Wrapped?

转载 作者:IT老高 更新时间:2023-10-28 12:29:11 29 4
gpt4 key购买 nike

我正在使用 MongoDB C# 驱动程序构建一些更新语句。 The C# APIBuilder 命名空间中包括 Wrapped 和“Un-Wrapped”方法。

从表面上看,这些似乎因泛型不同而不必使用 BSON包装。但是,这两种方法类型都允许我传入非 Bson-Wrapped 参数。两者在功能上有区别吗?

例如(使用驱动v1.2),这里是Update.Set的两种用法:

var myCollection = database.GetCollection<MyObject>(typeof(MyObject).Name);

myCollection.Update(
Query.EQ( "_id", myId ),
Update.Set( "Message", "My message text"));

// And now the same call with "Wrapped" method
myCollection.Update(
Query.EQ( "_id", myId ),
Update.SetWrapped( "Message", "My message text"));

这两个调用有什么区别?如果只是语法糖 - 为什么需要 Wrapped 版本?

最佳答案

设置字符串值时没有区别。当您使用复杂类型时需要包装方法:类、列表等(不是 BsonValue)。他们只是正确地将对象转换为 BsonValue 类型。

小例子:

使用 Set 你不能做以下事情:

var item = new MyDemo();
Update.Set("Item", item)

你必须使用 Wrapped 方法或 ToBsonDocument() 扩展:

var item = new MyDemo();
Update.SetWrapped("Item", item)

就是这样!

请注意,mongodb 的驱动程序和大多数部分都是开源的。所以对 look at 来说没什么大不了的:)

关于c# - 使用 MongoDB C# 驱动程序 : Wrapped or Un-Wrapped?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12863238/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com