如何构造一个通用的多条件的HQL查询方法呀?

stg609 stg609 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
发现刚发的一篇题目中打错了个字,所以再发一篇,大家可以在两个篇中回答,当然如果回答内容相同,就不重复给分。
上一篇链接:点击

最近在用Nhibernate,遇到一个小问题。
在我的DAL层中有一个EntityControl.cs,里面封装一些执行NHibernate的通用方法,如AddEntity,DeleteEntity等。这样在具体的DAL类中就只需要调用这些通用的方法就可以实现数据的交互。而不需要知道具体Nhibernate是如何操作的,同时也省去了很多重复的代码。但是在该通用方法中有一些查询方法,每个查询方法只能根据特定的数量的字段和值查询条件进行查询,也就是说如果我的查询条件只有一个,那我这个查询方法中就只需要有一个字段参数,如果有两个就需要两个字段参数,如果有三个就需要三个字段参数,依此类推。这样的话,我就很难确定到底写几个查询方法才能满足调用的需要。万一有100种可能的情况,那我不是就要为1个字段参数到100个字段参数写100个查询方法了?

因此我想写一个通用的多条件HQL查询的方法,可是不知道该怎么写。请大家帮忙。
现在有一个想法是利用数组。如GetEntity(表名,字段名[],值[])。
这样可以假设现在需要从表1中查询 字段1="1" 并且 字段2="2" 的值,那我首先可以构造两个string数组,其中一个存放多个字段,另一个存放对应的值。
接着调用GetEntity(“表1”,字段数组,值数组)来获取符合条件的记录。

不知道这个方法具体该如何实现,请大家出些主意,最好能有实现代码。谢谢。


如果说可以有更好的实现这种功能的办法,也欢迎大家提出来。
...全文
评论 9
收藏 已收藏
分享
返回顶部
stg609
C# 111,129 成员 642,540 内容