我可以将 pocos 与 mongodb C# 驱动程序一起使用吗

发布于 2024-11-08 15:40:56 字数 161 浏览 0 评论 0原文

我想知道我是否可以读取原始 pocos 并将其写入 mongodb

驱动程序教程显示一次将每个字段添加到 bsondocument 中。 bsonserialzer 能做到吗?

我可以自己写一些东西来反映一个物体,但我想知道它是否已经存在。

使用动态扩展会很好

I was wondering if I can read and write raw pocos to mongodb

the driver tutorial shows adding each field to a bsondocument one at a time. Does bsonserialzer do it?

I can write something myself to reflect on an object but I wonder it it already exists.

Working with dynamic expandos would be nice

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

删除会话 2024-11-15 15:40:56

是的,10gen官方C# MongoDB驱动支持POCO序列化和反序列化,例如

MongoCollection<Thing> thingCollection = _db.GetCollection<Thing>("things");
Thing thing = col.FindAllAs<Thing>();
col.Insert(new Thing { Name = "Foo" });

Yes, the 10gen official C# MongoDB driver supports POCO serialisation and deserialisation, e.g.

MongoCollection<Thing> thingCollection = _db.GetCollection<Thing>("things");
Thing thing = col.FindAllAs<Thing>();
col.Insert(new Thing { Name = "Foo" });
御弟哥哥 2024-11-15 15:40:56

我认为你可以而且应该,10gen 驱动程序 POCO 对象。您可以在完全独立的程序集中设计 POCO 模型,而无需引用 Mongo.Driver 或 Mongo.BSon,并配置应用程序的入口点以使用该程序集、设置索引、忽略字段、鉴别器、ids 列等。

 BsonClassMap.RegisterClassMap<Post>(cm =>
        {
            cm.AutoMap();
            cm.SetIdMember(cm.GetMemberMap(c => c.IdPost));
            cm.UnmapProperty(c => c.TimeStamp);
            cm.UnmapProperty(c => c.DatePostedFormat);
            cm.UnmapProperty(c => c.IdPostString);
            cm.UnmapProperty(c => c.ForumAvatar);
            cm.UnmapProperty(c => c.ForumAvatarAlt);
        });

I think you can and you should, 10gen driver POCO objects. You can design your POCO model in a completely sepparate assembly without any reference to Mongo.Driver o Mongo.BSon and configure the entry point of your app to use that assembly, setting indexes, ingnore fields, discriminators, ids columns, and a large etc.

 BsonClassMap.RegisterClassMap<Post>(cm =>
        {
            cm.AutoMap();
            cm.SetIdMember(cm.GetMemberMap(c => c.IdPost));
            cm.UnmapProperty(c => c.TimeStamp);
            cm.UnmapProperty(c => c.DatePostedFormat);
            cm.UnmapProperty(c => c.IdPostString);
            cm.UnmapProperty(c => c.ForumAvatar);
            cm.UnmapProperty(c => c.ForumAvatarAlt);
        });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文