C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达
QQ:1187362408 欢迎技术交流和学习
关于系统产品升级报告管理,业务需求:
TODO:
1,升级报告管理:依据各县区制定升级报告(关联sAreaCode,给每个地区观看具体升级报告信息)
2,运用的技术:依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量与可null变量巧用,属性实际运用,唯一性验证,url传递中文编码和解码问题
讲解篇:1,服务端aspx,2,服务端后台返回数据(这里采用服务器端程序:aspx.cs)
TODO:
一,讲解篇依据:技术分类进行逐一讲解
二,开源思想:分享和总结技术
一,讲解篇依据:技术分类进行逐一讲解:
1,依赖注入
/*TODO:非功能性辅助需求
* 业务需求:
* 升级报告管理:依据各县区制定升级报告(关联sAreaCode,给每个地区观看具体升级报告信息)
* 主表:sys_UpdateReport 子表:sys_UpdateReportCustom
* 标识:gKey【键值】,sVersionNunber【版本信息关联子表】,sAreaCode【对每一个地区升级】
*/
Isys_UpdateReportCustomBLL iBLL = IOCFactory.GetIOCResolve<Isys_UpdateReportCustomBLL>();//依赖注入 版本升级报告业务逻辑层接口
Isys_AreaDAL iAreaDAL = IOCFactory.GetIOCResolve<Isys_AreaDAL>();//依赖注入 地区信息数据层接口
2,变量声明
private string[] sareacodearray = new string[] { };//声明 地区编码【可能是一对数组】
private string sareacode { get; set; }//声明 地区编码
private int sareacodearraylength { get; set; }//声明 地区编码长度
private sys_Area modelArea = new sys_Area();//声明并初始化地区实体,以便获取地区信息
3,三元表达式
<pre name="code" class="csharp">sVNunber = svb == null ? "" : svb.Value;
sareanamearray = sareanamearray != "" ? sareanamearray.Substring(0, sareanamearray.Length - 1) : "";//截取,最后一个字符^
4,常用字符串相关操作方法
/// <summary>
/// 依据地区编码返回地区名称
/// </summary>
/// <param name="sAreaCode">地区编码</param>
/// <returns>地区名称(可能是多个)</returns>
public string GetsAreaNameBysAreaCode(object sAreaCode)
{
string sareanamearray = "";//声明 地区名称【可能是一对数组】
if (sAreaCode != null && sAreaCode.ToString() != "")
{
sareacode = sAreaCode.ToString();
/*if (sareacode.IndexOf('^') == -1)
sareacode = sareacode + '^';//当用户输入一个地区编码,忘记给它自定义添加'^'符号时,检索后台添加一个,便于存取数据及页面展示*/
sareacodearray = sareacode.Split('^');//地区编码数组
sareacodearraylength = sareacodearray.Length;//地区编码数组长度
for (int i = 0; i < sareacodearray.Length; i++)//sAreaCode格式实际中为:code1^code2,sareanamearray格式实际中为:name1,name2
{
modelArea = iAreaDAL.GetModelByID(sareacodearray[i]);//地区
if (modelArea != null && !string.IsNullOrEmpty(modelArea.sName))
{
sareanamearray += modelArea.sName + ",";//地区名称,,以','隔开页面展示
continue;
}
}
sareanamearray = sareanamearray != "" ? sareanamearray.Substring(0, sareanamearray.Length - 1) : "";//截取,最后一个字符^
}
return sareanamearray;
}
5,ADO.NET
/// <summary>
/// 定制需求【依据主表sys_UpdateReport中标识VersionNunber返回List<sys_UpdateReportCustom>】
/// </summary>
/// <param name="where">VersionNunber</param>
/// <returns>sys_UpdateReportCustom数量</returns>
public int? GetCustomList(System.Linq.Expressions.Expression<Func<sys_UpdateReportCustom, bool>> where)
{
return iDal.GetList(where).ToList().Count;
}
/// <summary>
/// 定制需求【依据主表sys_UpdateReport中标识VersionNunber返回List<sys_UpdateReportCustom>】
/// </summary>
/// <param name="where">VersionNunber</param>
/// <returns>List<sys_UpdateReportCustom></returns>
public List<sys_UpdateReportCustom> GetList(System.Linq.Expressions.Expression<Func<sys_UpdateReportCustom, bool>> where)
{
return iDal.GetList(where);
}
public sys_UpdateReportCustom GetModelByID(Guid gkey)
{
return iDal.GetModelByCondition(P => P.gKey.Equals(gkey));
}
6,EF机制
private Isys_UpdateReportCustomDAL iDal;
private IUnitOfWork<BaseFrameworkEntities> uwork;
public sys_UpdateReportCustomBLL(IUnitOfWork<BaseFrameworkEntities> uwork, Isys_UpdateReportCustomDAL iDal)
{
this.iDal = iDal;
this.uwork = uwork;
this.uwork.LogEvent = new LogEventHandler(Sys_LogBLL.WriteLog);
}
7,T4模板自动生成实体类
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71033.html