【发布时间】:2019-02-20 19:24:05
【问题描述】:
我在我的 .net core 2.0 应用程序中使用最新的 c# mongo 驱动程序。我的代码中有这个错误
无法从 BsonType 'Int64' 反序列化 'String'。.
但是 mongo 查询没有抛出任何异常。这是我存储库中的 find 方法。
/// <summary>
/// find entities
/// </summary>
/// <param name="filter">expression filter</param>
/// <returns>collection of entity</returns>
public virtual IEnumerable<T> Find(Expression<Func<T, bool>> filter)
{
return Collection.Find(filter).ToEnumerable();
}
/// <summary>
/// find entities
/// </summary>
/// <param name="filter">expression filter</param>
/// <returns>collection of entity</returns>
public Task<IEnumerable<T>> FindAsync(Expression<Func<T, bool>> filter)
{
return Task.Run(() => Find(filter));
}
这是处理程序代码
public async Task<object> Handle(GetQuestionBySurveyIdAndCodeQuery request, CancellationToken cancellationToken)
{
var result = await _context.Question.FindAsync(x => x.SurveyId.Equals(request.SurveyId));
return result;
}
代码运行成功,但在此查询返回的数据中显示错误。
我想抛出这个异常,以便我的框架可以处理它。他们的任何设置是否与此相关。
需要帮助。
谢谢
【问题讨论】:
-
我知道这不能解决您的问题,但如果 QuestionEntity.Variables 属性是多态的,您可能会遇到这种情况stackoverflow.com/questions/18642693/…
-
我希望抛出这个异常,以便 .net 代码框架可以处理当前我的 api 方法运行良好,因为它不应该是。
-
调用
result.ToList()会触发它吗?反序列化单个查询结果似乎是一个问题。调用 ToList() 应该强制惰性可枚举立即评估所有结果。
标签: c# mongodb mongodb-query mongodb-.net-driver