ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。
如以下示例:
1 public int GetSystemAccreditMessageInfo(AccreditParam param) 2 { 3 var where = new Where<User>(); 4 var countMesage = 0;//记录提醒次数 5 HttpCookie cookie = HttpContext.Current.Request.Cookies["UserLogin"] as HttpCookie; 6 if (cookie["Login_id"] != null) 7 { 8 where.And(d => d.id == cookie["Login_id"].ToString()); 9 } 10 where.And(d => d.Del_state == 0); 11 var fs = DB.Context.From<User>() 12 .Select(User._.All, Power._.All) 13 .InnerJoin<Power>((a, b) => a.Role_id == b.id) 14 .Where(where); 15 if (fs.First().Authority == "0") 16 { 17 countMesage = 0; 18 } 19 else if (fs.First().Authority == "1") 20 { 21 countMesage = DB.Context.From<Accredit>().Where(d => d.OAuditor_signature == null || d.OAuditor_signature == "").Count(); 22 } 23 else if (fs.First().Authority == "2") 24 { 25 countMesage = DB.Context.From<Accredit>().Where(d => d.TAuditor_signature == null || d.TAuditor_signature == "").Count(); 26 } 27 else if (fs.First().Authority == "3") 28 { 29 countMesage = DB.Context.From<Accredit>().Where(d => d.OAuditor_signature == null || d.OAuditor_signature == "" || d.TAuditor_signature == null || d.TAuditor_signature == "").Count(); 30 } 31 return countMesage; 32 }