我想使用Linq to SQL建立高级搜索。
我已经使用article通过Dynamic query with Linq
实现了我的目的,但是DynamicLibrary
对于某些数据类型(例如日期)有一个特定的问题。因此,它 不能 将日期值转换为LINQ并引发错误。
我已经问过这个问题here,但没有得到答复。
因此我开始将方法更改为使用Queryable。
这就是我想使用Queryable的方法:
private void button1_Click(object sender, EventArgs e)
{
LinqTestDataContext ctx = new LinqTestDataContext("Data Source=.;Initial Catalog=valveManagement2018;Integrated Security=True");
if (rbvalveStreet.Checked)
{
if (!string.IsNullOrEmpty(valveStreet.Text))
{
var qry1 = Queryable.Select(Queryable.Where(
ctx.valves, p => p.valveStreet.Contains(valveStreet.Text)), p => new { p.valveId, p.aTId,p.typeId, p.valveStreet });
}
}
if (rbtypeId.Checked)
{
var qry2 = Queryable.Select(Queryable.Where(
ctx.valves, p => p.typeId == cbTypeId.selectedIndex), p => new { p.valveId, p.aTId, p.typeId,p.valveStreet });
}
var qryFinal = qry1.Concat(qry2);
dgv.DataSource = qryFinal;
}
但是问题出在这里,Concat的行为类似于OR
操作数,结果是
qry1 OR qry2
,但我想得到类似AND
的操作数,例如qry1 AND qry2
。
那么,如何处理此问题或存在任何安全方法来处理linq to sql中的自定义?
答案 0 :(得分:1)
这不是自定义,而是普通的Linq To SQL:
class TestPage extends Component {
constructor(props){
super(props);
this.state = {
myNumber:0
}
}
componentDidMount(){
}
render(){
console.log('My value : ',this.state.myNumber);
return (
<View>
<Picker
selectedValue={this.state.myNumber}
style={{ height: 50, width: 150 }}
onValueChange={(itemValue) => this.setState({myNumber: itemValue})}>
<Picker.Item label="One" value="1" />//The value here
<Picker.Item label="Two" value="2" />
</Picker>
</View>
);
}
}
答案 1 :(得分:0)
这应该与Linq2Sql一起使用,并且更容易遵循:
LinqTestDataContext ctx = new LinqTestDataContext("Data Source=.;Initial Catalog=valveManagement2018;Integrated Security=True");
bool includeValveStreet = rbvalveStreet.Checked,
includeTypeId = rbtypeId.Checked;
dgv.DataSource = ctx.valves.Where(p => (includeValveStreet && p.valveStreet.Contains(valveStreet.Text))
|| (includeTypeId && p.typeId == cbTypeId.selectedIndex)))
.Select(p => new { p.valveId, p.aTId,p.typeId, p.valveStreet })
.ToList();