微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生成 InMemoryDatabase 测试失败的 SQL 查询

如何解决生成 InMemoryDatabase 测试失败的 SQL 查询

我遇到了 xUnit InMemoryDatabase 故障。

var selectedPeople = _context.People
                .Where(x => ids.Contains(x.Id) && x.Valid &&
                         selectedFunctions.Any(function => 
                              x.Functions.Any(r => r.FunctionId == function.Id)));

抛出的错误如下:

Failed: system.invalidOperationException : Error generated for warning 'Microsoft.EntityFrameworkCore.Query.QueryClientEvaluationWarning: The LINQ expression 'where {from Function function in __selectedFunctions_1 where {from DbPersonFunction f in value(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1 where ([f].FunctionId == [function].Id) where  ?= (Property([x],"Id") == Property([f],"PersonId")) =? select [f] => Any()} select [function] => Any()}' Could not be translated and will be evaluated locally.'.

查询已经在做正确的事情,但是在 EF 升级之后,使用上述查询调用方法的单元测试将失败。我相信重写查询解决问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。