0
我有一个项目列表,我可以得到关于项目的所有细节。在项目类中,我有项目中的客户对象,我只是想根据客户过滤该列表。我怎样才能做到这一点 。如何使用不同的关键字来过滤对象
public ICollection<Project> GetProjectBasicDetailsByProjectTypeCustomerID(ProjectType projectType, string custName, string cordinatorName, string projectName)
{
oLog.Debug("Started");
ISession session = DataAccessLayerHelper.OpenReaderSession();
ITransaction transaction = null;
ICollection<Project> projectList = null;
try
{
transaction = session.BeginTransaction();
ICriteria criteria = session.CreateCriteria(typeof(Project),"Project")
.CreateAlias("Project.customer","customer",NHibernate.SqlCommand.JoinType.InnerJoin)
.CreateAlias("Project.Coordinator", "Coordinator", NHibernate.SqlCommand.JoinType.InnerJoin)
.Add(Restrictions.Eq("Project.ProjectType", projectType));
projectList = criteria.List<Project>().ToList();
session.Flush();
transaction.Commit();
}
catch (Exception ex)
{
if (transaction != null && transaction.IsActive)
transaction.Rollback();
oLog.Error(ex);
}
finally
{
if (transaction != null)
transaction.Dispose();
if (session != null && session.IsConnected)
session.Close();
}
oLog.Debug("End");
return projectList;
}
您能否请一些代码,控制器操作,过滤逻辑等?因为根据您当前的描述很难提供帮助。 – nemesv
@nemesv我已经发布了我使用的服务...在这里,我想过滤根据客户列表,而不是项目... –
NHibernate参考的第15章涉及Criteria API,第15.4节特别涉及关联:http://nhforge.org/doc/nh/en/index.html#querycriteria -associat离子你试过吗?究竟是什么不起作用? –