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

Vin*_*nyG 0 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())));
Run Code Online (Sandbox Code Playgroud)

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

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

有什么建议?非常感谢!

Gio*_*i B 6

怎么样:

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