Linq to sql 动态添加条件多表查询数据

fromdstuinDB.t_imsstudentjoindsigninDB.t_imsignupsondstu.OBJ_IDequalsdsign.studentIDs... from dstu in DB.t_imsstudent
join dsign in DB.t_imsignups
on dstu.OBJ_ID equals dsign.studentID
select new
{
OBJ_ID = dsign.objID,
name = dstu.name,
CSRQ = dstu.CSRQ,
XBM = dstu.XBM,
manuallabornumber = dsign.manuallabornumber,
trainingofoccupation = dsign.trainingofoccupation,
tfdegree = dsign.tfdegree,

};
像这样多表查询
但是现在需要根据几个条件。。条件是动态添加的。。是根据用户的选择来添加的。。用户可能选择了名字为多少 。。也可能选择了身份证号为多少。。也可能要求名字和身份证号为多少。。这样动态的条件查询。。
我使用linq 的addwhere追加条件。。因为我多表查询的时候重新new了一个表。。所以导致现在没法动态追加条件。。追加条件一直提示表类型不正确。。额。。不知道我描述清楚了没??有什么办法解决这个问题么?
追加条件的代码这样做的。
List<Expression<Func<LinqToSql.Orm.t_imsignup, bool>>> exlist = new List<Expression<Func<LinqToSql.Orm.t_imsignup, bool>>>();
var list = DataList.Where(IMSROOT.App_Code.DynamicLinq.AddWhere<LinqToSql.Orm.t_imsignup>(exlist));
或者说有没有其他办法来查询数据??
问题已经解决了。。想自己来回答这个问题。。但是好像不行。。

这样写都解决了。。。。。没人回答这个问题我就只能这样了。。
展开
 我来答
du瓶邪
推荐于2016-04-01 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2818万
展开全部
sql = "select * from t where 1=1";

//姓名不为空就把姓名加入where条件
if (!string.IsNullOrEmpty(this.txtName.Text.Trim()))
{
sql = sql + string.Format(" and name like '%{0}%'", this.txtName.Text.Trim());
}

//身份证号不为空就把身份证号加入where条件
if (!string.IsNullOrEmpty(this.txtID.Text.Trim()))
{
sql = sql + string.Format(" and id like '%{0}%'", this.txtID.Text.Trim());
}
延从戎0br
2014-07-23
知道答主
回答量:3
采纳率:0%
帮助的人:3万
展开全部
这个嘛
私密我,我给你手把手解决
追答
我大爷已经走了,哈哈
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式