小编M.G*_*M.G的帖子

使用 EF.Functions.Contains() 的单元测试方法

我有一个方法,其中包含对EF.Functions.Contains. 现在我想使用 InMemory 数据库为此方法编写单元测试,但我立即收到以下异常System.InvalidOperationException : The 'Contains' method is not supported because the query has switched to client-evaluation.

我的方法看起来像这样

var attributeValues = Context.AssetAttributeValues
                                         .Include(a => a.AssetAttribute)
                                         .Include(a => a.Asset)
                                         .Where(i => EF.Functions.Contains(i.Value, searchString));
Run Code Online (Sandbox Code Playgroud)

我知道抛出此异常是因为与我的高效 SQL Server 实例相比,我的 InMemory 数据库上没有全文索引,但如何在 InMemory 数据库上获取相同的索引?

有什么办法可以解决这个异常吗?

c# unit-testing entity-framework ef-core-2.2

6
推荐指数
1
解决办法
1577
查看次数

标签 统计

c# ×1

ef-core-2.2 ×1

entity-framework ×1

unit-testing ×1