LinqDataSource динамические параметры - принуждение ИЛИ с WhereParameters

В моем операторе "выбора" я должен добавить два динамических параметра при использовании набора WhereParameters LinqDataSource:

e.WhereParameters.Add(param, True)

Однако система добавляет эти параметры как AND, но я хочу выполнить OR где также parameter 1 ИЛИ parameter 2 верно.

Как это может быть сделано?

1
задан p.campbell 22 July 2010 в 21:17
поделиться

2 ответа

Если вы не знаете количество параметров во время проектирования и можете определить их только во время выполнения, подумайте об изменении свойства Where источника данных во время выполнения. Вы можете вставить фактические значения самостоятельно.

 //e.g. we know that we want 4 params this time.
 LinqDataSource1.Where = 
    "Alpha == 1 OR Brave==False OR Charlie> 'Jan 1 1999' or Delta = @DeltaVal";
 LinqDataSource1.WhereParameters.Add("DeltaVal", "O'Flanagan");

Если вы знаете n параметров во время выполнения, вы можете просто поставить оператор OR во время проектирования и изменить их значения.

Возможно, поместить ваше OR предложение прямо в объявление LinqDataSource.

<asp:LinqDataSource ID="LinqDataSource1" runat="server"          
     Where="Foo == @FooValue OR Bar==@BarValue">

Затем в code-behind можно добавить эти два параметра where.

LinqDataSource1.WhereParameters.Add("FooValue", "milk");
LinqDataSource1.WhereParameters.Add("BarValue", "eggs");
2
ответ дан 2 September 2019 в 22:50
поделиться

Вы можете использовать PredicateBuilder Джо Албахари. Я использовал его с большим успехом.

0
ответ дан 2 September 2019 в 22:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: