猿问

反射查询实体条件

加入有N个实体类,每个实体类操作都会都有一个查询方法,每个查询方法都会判断每个属性是否为空,如果不为空则作为查询条件,要一个个手动判断是在太麻烦,有没有好的方法,比如利用反射判断,或是还有什么更好的方法

        if (!string.IsNullOrEmpty(model.ID))
            {
                _dal.Where(x => x.ID.StartsWith(model.ID));
            }            if (!string.IsNullOrEmpty(model.Name))
            {
                _dal.Where(x => x.Name.StartsWith(model.Name));
            }            if (!string.IsNullOrEmpty(model.Age))
            {
                _dal.Where(x => x.Age.StartsWith(model.Age));
            }            if (!string.IsNullOrEmpty(model.Hobby))
            {
                _dal.Where(x => x.Hobby.StartsWith(model.Hobby));
            }


喵喔喔
浏览 499回答 2
2回答

PIPIONE

从你代码看来是一个实体类多个属性。貌似可以利用反射遍历实体所有属性然后判断赋值

达令说

var type = typeof(XX);            foreach (var s in type.GetProperties())             {                                if(s.GetValue(new  XX(),null) != null)                 {                              }             }很简单的一个反射就搞定了。
随时随地看视频慕课网APP
我要回答