gpt4 book ai didi

javascript - 尝试从 MongoDB BsonArray 转换为 IEnumerable POCO 实例集合时抛出错误

转载 作者:行者123 更新时间:2023-11-27 23:19:00 26 4
gpt4 key购买 nike

全部:

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

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();

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

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

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

提前致谢。

最佳答案

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

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

关于javascript - 尝试从 MongoDB BsonArray 转换为 IEnumerable<Users> POCO 实例集合时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554495/

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