我有一个示例查询类,其中包含查询参数作为其属性。此类用于WCF通信,在服务器端生成适当的过滤器表达式。
示例代码在哪里。
internal interface IExpressionBuilder<T>
{
Func<T, bool> Build();
}
这是示例实现
[DataContract]
public class PersonQuery : IExpressionBuilder<Person>
{
[DataMember]
public string IdCardNumber;
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public DateTime? BirthDate { get; set; }
#region Implementation of IExpressionBuilder<Data>
public Func<Person, bool> Build()
{
throw new NotImplementedException();
}
#endregion
}
用法:
publi List<Person> GetPersonByQuery(PersonQuery query)
{
(using context = new SampleContext())
{
return List<Person> foundPersons = context.people.where(query.build());
}
}
你可以看到这个想法非常简单但我的问题是如果设置了PersonQuery属性,如果它们被设置,当调用build()方法时,如何根据
动态包含它们