Javascript 尝试从MongoDB BsonArray转换为IEnumerable时引发错误<;用户>;POCO实例的集合
全部: 以下是有关我的开发环境的信息: MongoDB 3.0.0 MongoDB C#驱动程序版本1.7.0.4714 微软Visual Studio专业版2013 .NET Framework 4.0 以下是我们项目中使用的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; }
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());