在Dynamic Linq中没有使用“LIKE”,在尝试创建高级搜索查询时,它实际上对我没用。
在使用Linq to SQL时,您是如何克服此高级搜索问题的?
我需要搜索以下字段类型,它们也可以为null:
我也不能只使用ExecuteQuery,因为那时我没有得到真正的“实体”及其所有关系/关联。
我只是不知道如何使用Linq to SQL做到这一点。我目前没有存储过程,所以如果我能用Linq解决这个问题,我宁愿没有一个存储过程。
答案 0 :(得分:2)
要制作LIKE语句,您可以使用Contains方法:
string myText = "test";
var query = dc.Table.Where(r=>r.Column.Contains(myText));
这将生成这种SQL语句:
SELECT [t0].[Column], ... [t0].[ColumnN]
FROM [Table] AS [t0]
WHERE [t0].[Column] LIKE @p0
@ p0参数将"%test%"
作为值。
对于Date和int比较,如果我理解你想要什么,你可以这样做:
DateTime? myDate = new DateTime(2009, 3, 15);
var query = dc.Table.Where(r=> r.DateColumn > myDate || myDate == null );
因此,如果myDate为null,则不会评估条件DateColumn > myDate
。