Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从MongoDB BsonArray转换为IEnumerable时引发错误<;用户>;POCO实例的集合_Javascript_C#_Mongodb_Casting_Bson - Fatal编程技术网

Javascript 尝试从MongoDB BsonArray转换为IEnumerable时引发错误<;用户>;POCO实例的集合

Javascript 尝试从MongoDB BsonArray转换为IEnumerable时引发错误<;用户>;POCO实例的集合,javascript,c#,mongodb,casting,bson,Javascript,C#,Mongodb,Casting,Bson,全部: 以下是有关我的开发环境的信息: MongoDB 3.0.0 MongoDB C#驱动程序版本1.7.0.4714 微软Visual Studio专业版2013 .NET Framework 4.0 以下是我们项目中使用的POCO类之一: public class AppUsers { public Object Id { get; set; } public int UserID { get; set; }

全部:

以下是有关我的开发环境的信息:

MongoDB 3.0.0

MongoDB C#驱动程序版本1.7.0.4714

微软Visual Studio专业版2013

.NET Framework 4.0

以下是我们项目中使用的POCO类之一:

    public class AppUsers
        {

            public Object Id { get; set; }
            public int UserID { get; set; }
            public int CompanyID { get; set; }
            public string Username { get; set; }
            public string Password { get; set; }
            public int RoleID { get; set; }
        public DateTime LoginTime { get; set; }
        public DateTime LogoutTime { get; set; }
    }
下面是一个准存储过程JavaScript函数,用于查询MongoDB数据库的AppUsers集合:

function (userIdArg 
              , companyIdArg
                 , searchTermArg
                    , referenceRoleIdOfInterestArg
                     , startRowOfInterestArg
                       , displayedRowsQuantityArg
                        , sortColumnArg
                        , isAscendingArg){



    var usrColl = [];                  


        usrColl = db.getCollection('AppUsersCollection').find(   {     "CompanyID" : companyIdArg }).sort( { sortColumnArg : isAscendingArg } ).skip(startRowOfInterestArg).limit(displayedRowsQuantityArg).toArray();

returns usrColl;
}
以下是将调用上述JavaScript代码的客户机代码摘录:

            var sysJs = DBConnection.database.GetCollection("system.js");

            sysJs.Remove(Query.EQ("_id", "getUsers"));

            var code = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Hos/quasiStoredProceduresJS/getUsers.js"));


            var codeDocument = new BsonDocument("value", new    BsonJavaScript(code));

            codeDocument.Add(new BsonElement("_id", "getUsers"));

            sysJs.Insert(codeDocument);

 BsonValue getUsers = DBConnection.database.Eval("getUsers");


            BsonValue bv3 =  DBConnection.database.Eval(getUsers.AsBsonJavaScript.Code, null
                                                                                            ,
loggedInUser.CompanyID
                                                                                                     ,
searchTermArg
                                                                                                      ,
ApplicationConstants.DriverRole
                                                                                                   ,
startRowOfInterest
                                                                                                    ,
displayedRowsQuantity
                                                                                                     ,
sortColumn
                                                                                                     ,
isAscending);


            IEnumerable<Users> usersOfInterestList =     bv3.AsBsonArray.AsQueryable();
var sysJs=DBConnection.database.GetCollection(“system.js”); sysJs.Remove(Query.EQ(“_id”,“getUsers”)); var code=File.ReadAllText(HttpContext.Current.Server.MapPath(“~/Hos/quasiStoredProceduresJS/getUsers.js”); var codeDocument=新的BsonDocument(“值”,新的BsonJavaScript(代码)); 添加(新的bsonement(“_id”,“getUsers”); 插入(代码文档); BsonValue getUsers=DBConnection.database.Eval(“getUsers”); BsonValue bv3=DBConnection.database.Eval(getUsers.AsBsonJavaScript.Code,null , loggedInUser.CompanyID , searchTermArg , ApplicationConstants.DriverRole , startRowOfInterest , 显示的数量 , 分类柱 , Isasking); IEnumerable usersOfInterestList=bv3.AsBsonArray.AsQueryable(); 上述行是我遇到问题的地方,这给了我以下错误:

Error   90  Cannot implicitly convert type     'System.Linq.IQueryable<MongoDB.Bson.BsonValue>' to     'System.Collections.Generic.IEnumerable<Users>'. An explicit conversion     exists (are you missing a cast?) 
错误90无法将类型“System.Linq.IQueryable”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(是否缺少强制转换?)
如何实现代码,以便轻松地将包含用户的BSONArray转换为IEnumerable集合


提前感谢。

我使用BsonSerializer反序列化JSON,如下代码行所示:

IEnumerable<AppUsers> usersOfInterestList =     BsonSerializer.Deserialize<List<AppUsers>>(bv3.ToJson());
IEnumerable usersOfInterestList=BsonSerializer.Deserialize(bv3.ToJson());