c# Mongdb.Dynamic 方法缺少带有 upsert() 的异常
c# Mongdb.Dynamic Method Missing Exception with upsert()
我正在编写一个 asp.net MVC4 应用程序。我有几个 DAO 接口和 DTO 类,并想将这些 类 的实例插入到我的 mongo 数据库中。
我在控制台应用程序中尝试了以下操作并且有效:
Dynamic.Config.SetKeyName<IInventorySystem>(i => i.Id);
Dynamic.Config.SetIndex<IInventorySystem>("idx_invSystem", false, i => i.Name);
Dynamic.Config.SetKeyName<IContainer>(c => c.Id);
Dynamic.Config.SetIndex<IContainer>("idx_Container", false, i => i.Name);
Dynamic.Config.LoadCollection<IInventorySystem,IContainer>(i=>i.Containers,c=>c.InventorySystemId);
Dynamic.Config.LoadFK<IContainer,IInventorySystem>(c=>c.InventorySystem,c=>c.InventorySystemId);
Dynamic.Configure();
var invSystems = Dynamic.GetCollection<IInventorySystem>();
var containers = Dynamic.GetCollection<IContainer>();
var invSystem = invSystems.New();
invSystem.Name = "bla";
invSystems.Upsert(invSystem);
但是 MVC 控制器中的相同代码不起作用,我收到以下错误:
"Method not found: 'MongoDB.Driver.SafeModeResult MongoDB.Driver.MongoCollection`1.Insert(System.__Canon)'."}
进一步隔离问题的方法不成功
实例化 DAO 并对其属性值进行硬编码,以消除可能由 html 形式的绑定引起的问题。
使用 impromptuInterface 生成代理,然后在保存代理之前设置其属性,以消除 DTO 问题
参见:http://mongodbdynamic.codeplex.com/documentation
- 向项目添加依赖注入,而不是为 DatabaseContext 使用静态对象,以防止由于 MVC 应用程序与单线程控制台应用程序的工作方式不同而可能发生的垃圾收集/线程问题。
连接到数据库
作品。已创建集合,但我无法在 mvc4 应用程序中保存。
研究
在我的研究中,我发现了很多缺失的方法问题,但是 none 与 mongodb.dynamic 有关
寻找 mongodb c# 驱动程序的问题可以找到类似的问题,但这些也不完全相同
为什么MongoDB而不是关系型DB?因为后面想给某个DTO添加键值对的字典。但最好先了解基础知识。
所以最后感谢阅读到最后,任何帮助将不胜感激,或者使用 mongo 的与 mvc 兼容的不同方法。
版本信息
MongoDb.Dynamic(与 nuget 一起安装)- 版本 1.1.1
MongoDb 官方 C# 驱动程序(与 nuget 一起安装)版本 1.10.0
MongoDB.Dynamic 大约 3 年没有更新了。这取决于驱动程序的旧版本。 mongocsharpdriver 在其 1.x 系列中不使用 semver,因此使用 1.10 版本的驱动程序没有 MongoDB.Dynamic.
使用的方法。
我正在编写一个 asp.net MVC4 应用程序。我有几个 DAO 接口和 DTO 类,并想将这些 类 的实例插入到我的 mongo 数据库中。
我在控制台应用程序中尝试了以下操作并且有效:
Dynamic.Config.SetKeyName<IInventorySystem>(i => i.Id);
Dynamic.Config.SetIndex<IInventorySystem>("idx_invSystem", false, i => i.Name);
Dynamic.Config.SetKeyName<IContainer>(c => c.Id);
Dynamic.Config.SetIndex<IContainer>("idx_Container", false, i => i.Name);
Dynamic.Config.LoadCollection<IInventorySystem,IContainer>(i=>i.Containers,c=>c.InventorySystemId);
Dynamic.Config.LoadFK<IContainer,IInventorySystem>(c=>c.InventorySystem,c=>c.InventorySystemId);
Dynamic.Configure();
var invSystems = Dynamic.GetCollection<IInventorySystem>();
var containers = Dynamic.GetCollection<IContainer>();
var invSystem = invSystems.New();
invSystem.Name = "bla";
invSystems.Upsert(invSystem);
但是 MVC 控制器中的相同代码不起作用,我收到以下错误:
"Method not found: 'MongoDB.Driver.SafeModeResult MongoDB.Driver.MongoCollection`1.Insert(System.__Canon)'."}
进一步隔离问题的方法不成功
实例化 DAO 并对其属性值进行硬编码,以消除可能由 html 形式的绑定引起的问题。
使用 impromptuInterface 生成代理,然后在保存代理之前设置其属性,以消除 DTO 问题 参见:http://mongodbdynamic.codeplex.com/documentation
- 向项目添加依赖注入,而不是为 DatabaseContext 使用静态对象,以防止由于 MVC 应用程序与单线程控制台应用程序的工作方式不同而可能发生的垃圾收集/线程问题。
连接到数据库 作品。已创建集合,但我无法在 mvc4 应用程序中保存。
研究
在我的研究中,我发现了很多缺失的方法问题,但是 none 与 mongodb.dynamic 有关 寻找 mongodb c# 驱动程序的问题可以找到类似的问题,但这些也不完全相同
为什么MongoDB而不是关系型DB?因为后面想给某个DTO添加键值对的字典。但最好先了解基础知识。
所以最后感谢阅读到最后,任何帮助将不胜感激,或者使用 mongo 的与 mvc 兼容的不同方法。
版本信息
MongoDb.Dynamic(与 nuget 一起安装)- 版本 1.1.1 MongoDb 官方 C# 驱动程序(与 nuget 一起安装)版本 1.10.0
MongoDB.Dynamic 大约 3 年没有更新了。这取决于驱动程序的旧版本。 mongocsharpdriver 在其 1.x 系列中不使用 semver,因此使用 1.10 版本的驱动程序没有 MongoDB.Dynamic.
使用的方法。