在我的应用程序中,我有一个访问SQL Server数据库的repo。我尝试为这个方法编写单元测试。为此,我在内存中使用SQLite。
我的方法在SQL Server上运行得很好,但在SQLite上不行。因此单元测试没有通过
var result = await (from command in _context.Commandes
where command.Numero == numero
select new CommandeDto
{
Numero = command.Numero,
Produits = command.Produits.Select(s => new ProduittDto()
{
Id = s.s.Id,
Libelle = s.Name,
}).Distinct().ToList()
}).ToListAsync(cancellationToken);
错误:
系统操作无效异常:转换此查询需要SQL APPLY操作,SQLite不支持此操作。
如果删除Distinct
,则测试有效
1条答案
按热度按时间fykwrbwg1#
这个GitHub issue for EFCore基本上回答了您的问题。我认为您唯一的选择是使用LINQ在内存中执行
.Distinct()
,而不是作为EFCore表达式的一部分。