使用dapper框架动态拼接出最安全的sql语句--多条件查询

        public List<NoticeState> GetNoticeByToUserID(Search search)
        {
            //search.userId=3;

            string sql = "select * from Notices WHERE ID>0 ";
            var param = new DynamicParameters();


            sql += " AND ToUserID LIKE @toUserID";
            param.Add("toUserID",  "%"+search.userId.ToString()+"%"  );

            if (search.ID > 0)
            {
                sql += " AND id = @id";
                param.Add("id", search.ID);
            }
            var NoticeState = new List<NoticeState>();

            NoticeState.AddRange(_workingDB.Query<NoticeState>(sql, param).ToList());

            string sql2 = "select * from IsReadNotices where NoticeID=@noticeID AND UserID=@uid ";

            foreach (var n in NoticeState)
            {

                IsReadNotice isReadNotices = _workingDB.Query<IsReadNotice>(sql2, new { noticeID = n.ID, uid = search.userId }).SingleOrDefault();
                if (isReadNotices != null)
                {
                    n.statusMsg = isReadNotices.statusMsg;
                    n.Remarks = isReadNotices.Remarks;
                }

            }


            return NoticeState;
        }


猜你喜欢

转载自blog.51cto.com/13717297/2161496