我正在处理的ASP.NET项目有三个层:UI、BLL和DAL。我想知道UI是否可以将lambda表达式传递给BLL,或者UI应该传递参数,Service方法应该使用这些参数来构造lambda表达式?以下是显示这两种情况的示例类。
public class JobService
{
IRepository<Job> _repository;
public JobService(IRepository<Job> repository)
{
_repository = repository;
}
public Job GetJob(int jobID)
{
return _repository.Get(x => x.JobID == jobID).FirstOrDefault();
}
public IEnumerable<Job> Get(Expression<Func<Job, bool>> predicate)
{
return _repository.Get(predicate);
}
}
对于上面的类,UI调用以下内容是否可以接受:
JobService jobService = new JobService(new Repository<Job>());
Job job = jobService.Get(x => x.JobID == 1).FirstOrDefault();
或者只允许调用GetJob(int jobID)?这只是一个简单的例子,我的问题是一般而言,UI层是否应该能够将lambda表达式传递到服务层而不是调用特定的方法?