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



All:

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

MongoDB 3.0.0

MongoDB C# 驱动程序版本 1.7.0.4714

Microsoft Visual Studio Professional 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();

上述行是我遇到问题的地方,它给了我以下错误:

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?) 

如何实现代码,以便可以轻松地将包含用户的BSONArray转换为IEnumerable集合?

提前谢谢。

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

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

相关内容

最新更新