sqlite .NET核心/ EF核心单元测试

w6mmgewl  于 2023-02-19  发布在  SQLite
关注(0)|答案(1)|浏览(149)

在我的应用程序中,我有一个访问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,则测试有效

fykwrbwg

fykwrbwg1#

这个GitHub issue for EFCore基本上回答了您的问题。我认为您唯一的选择是使用LINQ在内存中执行.Distinct(),而不是作为EFCore表达式的一部分。

相关问题