.Contains()在EF Code First的2个属性上

时间:2012-08-01 21:07:38

标签: c# linq entity-framework-4 ef-code-first

是否可以在Where()中对两个不同的属性进行查询?例如,我想获取所有在FirstName和LastName属性中包含“Robert G”的用户。如果我这样做:

var contacts = _session.All<Contact>()
    .Where(x => x.IsActive
                && (x.FirstName.ToLower().Contains(q.ToLower())
                    || x.LastName.ToLower().Contains(q.ToLower())));

我将不会得到“Robert G”的结果,因为FirstName包含“Robert”和LastName“Gambonni”。

我还考虑过创建一个新属性FullName,它只是一个Getter但是我必须先加载它们,因为我的属性不在数据库中。

有什么建议吗?非常感谢!

1 个答案:

答案 0 :(得分:6)

怎么样:

var contacts = _session.All<Contact>()
    .Where(x => x.IsActive
                && ((x.FirstName.ToLower() + " " + x.LastName.ToLower()).Contains(q.ToLower())));