课程作业(泛型 反射 特性)
作业内容是做一个控制台程序,要求如下:
1 建立一个数据库,然后执行下面的数据库脚本,会增加两张表 User Company,大家可以去表里面自己多加入一些数据
2 建立数据库表映射的基类BaseModel,包括 Id属性
建立两个子类Model:公司和用户,按照表结构来
3 提供两个泛型的数据库访问方法,用 BaseModel约束
一个是用id去查询单个实体,(只有这一个参数)
一个是查询出数据表的全部数据列表查询(没有参数)
提示:用DataReader去访问数据库,将得到的结果通过反射生成实体对象/集合返回;
4 如果数据库的表/字段名称和程序中实体不一致,尝试用特性提供;(数据库是state 程序得是status)
查询的实体数据希望通过反射展示全部数据,其中属性名称希望用具体中文描述,而不是实体的属性名;
5 进阶需求:提供泛型的数据库实体插入、实体更新、ID删除数据的数据库访问方法
6 进阶需求(可选):将数据访问层抽象,使用简单工厂+配置文件+反射的方式,来提供对数据访问层的使用
7 进阶需求(可选):按照课堂的例子,再增加几个验证特性如Required(非空) Mobile(手机号格式) Email(格式) 字符串长度(最大最小)等,
注意这时候一个属性可能会有多个验证属性,比如Required+Email+长度… ….
封装成一个泛型的数据校验方法,数据库增删改的时候,尝试完成数据校验
- 本文作者: 梁俊可
- 本文链接: http://ljk3d.com/2021/10/19/cSharpNote/CSharp高级进阶教程_03_阶段练习01——课程作业(泛型 反射 特性)_通用类库封装/
- 版权声明: 梁俊可工作室