【黑马训练营】利用欧姆表达式优化省市县联动——欧姆表达式,ListView与Model层的使用

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


      首先探讨一下Model层在什么状况下有用,毕竟不言而喻的事实是,Model会增加代码量,所以我们必须在意它能带来的收益:
      Model使得可以抽象化实例,然后利用属性在界面甚至架构间传值。因此如果想让UI层和BLL层彻底分离,那么用Model互相调用值是个不错的选择。
     Model可以设置多个属性,意味着它带有一定的“数组”功能,可以视为一个二维数组,即外层数组中的每一个元素都是一个新的数组,而内层数组则用来保存数据。这就意味着,Model类在重复性的传值中有着更佳的适用性。这种重复性不仅指“同一个值”,更可说成“同一种值”。比如,一个页面需要知道员工表中的一系列值(比如,姓名,年龄,职位,薪水,权限等),与其用到了查询一次传过去,不如Model出来一个Workers,然后传值的时候,将Workers具体实例化的一个worker传过去,则worker的所有属性就都有了。
      下面就省市县关联来说明一下Model的使用。首先看如下的数据库:

 
      可以看出,id是自增长的,是一条数据的主键,name为地区名字,而pid则为归属地的id。比如,河北省是省级行政区划,因此pid为0,即没有更高的归属了。而石家庄市,唐山市,秦皇岛市等都是河北省下属的市,所以这些市除了自己各自的id之外,pid均为3(河北省的id),自然,每一个市又都有所属的县,而县区的pid则分别是各自的归属市的id 。
      因为这些内容具有极为相似的结构(都是id,name,pid),又都有固定的意义(自身编号,自身地名,归属上级地区编号),因此可以设置Model出来。(抽象化出来的Area)

传统的解决方法:简单的三查数据库
方案思路:先查pid=0的,放在一个List中,即为“省”;在SelectionChanged中获得选中的Area,获得其id属性,然后查pid=Area.id,放在List中获得该省的“市”,以此类推,获得该市的“县”。




改良解决方法:既然省市县本就在一张表中,既然这只是一个简单的省市县关联,能不能只查询一次数据库就搞定呢?——欧姆表达式!

方案思路:把数据一次性调入到List中,再用欧姆表达式对List进行操作,分别获得指定pid的元素,放入新的List中显示出来。如此则可省去对数据库的2次访问!




---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值