【发布时间】:2010-06-08 03:54:09
【问题描述】:
我遇到了一个“问题”,我不太确定我是否理解实体框架。我正在使用 Entity Framework 4 并尝试使用 TDD 方法。因此,我最近使用存储库模式实现了一个搜索功能。对于我的测试项目,我正在实现我的存储库接口并拥有一组用于测试目的的“假”对象数据。
我在尝试让 Contains 子句用于不区分大小写搜索时遇到了问题。我的测试代码和用于数据库的存储库类的代码如下:
if (!string.IsNullOrEmpty(Description))
{
items = items.Where(r => r.Description.ToLower().Contains(Description.ToLower()));
}
但是,当我运行我的测试用例时,如果我的用例与基础数据不匹配,则不会填充结果。我试着调查一下我认为有一段时间的问题。为了清除我的想法,我跑了一遍,想知道使用 EF 的相同代码是否适用于 SQL 后端数据库,因为 SQL 将明确支持 like 命令,并且它使用相同的逻辑按我预期的方式执行。
我理解为什么针对数据库后端的 EF 支持 Contains 子句。然而,令我惊讶的是我的单元测试没有。当我使用填充在集合中而不是针对数据库服务器的对象时,除了 SQL 服务器支持 like 子句之外,还有什么想法?
谢谢!
约翰
【问题讨论】:
标签: entity-framework entity-framework-4