我正在实施一个搜索,将采取六个可能的(但不是必需的)用户输入,然后尝试将它们匹配到一些实体。Linq到实体搜索算法
我认为我遇到的问题是EF和SQL Server认为空值是两个完全不同的东西。
想法:选择一个实体,其中columnA =(如果columnA为null,则columnA(或null)else searchTerm)。搜索条件是整数和字符串的混合。
一些代码:
entities= (from c in context.Entities
where c.ColumnA == (searchTermA ?? v.ColumnA)
where c.ColumnB == (searchTermB ?? v.ColumnB)
select new
{
v.Property,
}).ToList();
如果所有列不包含空值,实体返回。但是,如果列中有空值,我不会得到预期的结果。
我该如何解决这个问题?
理查德
哪里了'v'从何而来?它应该是'c'吗? –
是的,都是一样的.. e's,v's,c's ...他们无处不在.. – Richard