private EntityCollection GetCollection()
{
QueryExpression query = new QueryExpression("contact")
{
Distinct = false,
NoLock = true,
ColumnSet = new ColumnSet("name"),
Criteria = new FilterExpression()
};
FilterExpression filterExpression1 = new FilterExpression
{
FilterOperator = LogicalOperator.Or
};
filterExpression1.AddCondition("type", ConditionOperator.Equal, 0);
filterExpression1.AddCondition("type", ConditionOperator.Equal, 1);
FilterExpression filterExpression2 = new FilterExpression
{
FilterOperator = LogicalOperator.And
};
filterExpression2.AddCondition("statecode", ConditionOperator.Equal, 0);
filterExpression2.AddCondition("name", ConditionOperator.Equal, "test");
FilterExpression filterExpression = new FilterExpression
{
FilterOperator = LogicalOperator.And,
Filters = { filterExpression1, filterExpression2 }
};
query.Criteria.AddFilter(filterExpression);
EntityCollection entityCollection = service.RetrieveMultiple(query);
return entityCollection;
}
上面QueryExpression查询与以下SQL等效:
select
name
from
contact
where
(
(
type = 1
or type = 2
)
and (
statecode = 0
and name = 'test'
)
);