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模板自动生成实体类

/// <summary>/// 没有元数据文档可用。/// </summary>[EdmEntityTypeAttribute(NamespaceName="HIP_BaseFrameworkModel", Name="sys_UpdateReportCustom")][Serializable()][DataContractAttribute(IsReference=true)]public partial class sys_UpdateReportCustom : EntityObject{#region 工厂方法/// <summary>/// 创建新的 sys_UpdateReportCustom 对象。/// </summary>/// <param name="gKey">gKey 属性的初始值。</param>/// <param name="sVersionNunber">sVersionNunber 属性的初始值。</param>/// <param name="sAreaCode">sAreaCode 属性的初始值。</param>/// <param name="dOperateTime">dOperateTime 属性的初始值。</param>public static sys_UpdateReportCustom Createsys_UpdateReportCustom(global::System.Guid gKey, global::System.String sVersionNunber, global::System.String sAreaCode, global::System.DateTime dOperateTime){sys_UpdateReportCustom sys_UpdateReportCustom = new sys_UpdateReportCustom();sys_UpdateReportCustom.gKey = gKey;sys_UpdateReportCustom.sVersionNunber = sVersionNunber;sys_UpdateReportCustom.sAreaCode = sAreaCode;sys_UpdateReportCustom.dOperateTime = dOperateTime;return sys_UpdateReportCustom;}#endregion#region 基元属性/// <summary>/// 没有元数据文档可用。/// </summary>[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)][DataMemberAttribute()]public global::System.Guid gKey{get{return _gKey;}set{if (_gKey != value){OngKeyChanging(value);ReportPropertyChanging("gKey");_gKey = StructuralObject.SetValidValue(value);ReportPropertyChanged("gKey");OngKeyChanged();}}}private global::System.Guid _gKey;partial void OngKeyChanging(global::System.Guid value);partial void OngKeyChanged();/// <summary>/// 没有元数据文档可用。/// </summary>[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)][DataMemberAttribute()]public global::System.String sVersionNunber{get{return _sVersionNunber;}set{OnsVersionNunberChanging(value);ReportPropertyChanging("sVersionNunber");_sVersionNunber = StructuralObject.SetValidValue(value, false);ReportPropertyChanged("sVersionNunber");OnsVersionNunberChanged();}}private global::System.String _sVersionNunber;partial void OnsVersionNunberChanging(global::System.String value);partial void OnsVersionNunberChanged();/// <summary>/// 没有元数据文档可用。/// </summary>[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)][DataMemberAttribute()]public global::System.String sAreaCode{get{return _sAreaCode;}set{OnsAreaCodeChanging(value);ReportPropertyChanging("sAreaCode");_sAreaCode = StructuralObject.SetValidValue(value, false);ReportPropertyChanged("sAreaCode");OnsAreaCodeChanged();}}private global::System.String _sAreaCode;partial void OnsAreaCodeChanging(global::System.String value);partial void OnsAreaCodeChanged();/// <summary>/// 没有元数据文档可用。/// </summary>[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)][DataMemberAttribute()]public global::System.String sContent{get{return _sContent;}set{OnsContentChanging(value);ReportPropertyChanging("sContent");_sContent = StructuralObject.SetValidValue(value, true);ReportPropertyChanged("sContent");OnsContentChanged();}}private global::System.String _sContent;partial void OnsContentChanging(global::System.String value);partial void OnsContentChanged();/// <summary>/// 没有元数据文档可用。/// </summary>[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)][DataMemberAttribute()]public global::System.DateTime dOperateTime{get{return _dOperateTime;}set{OndOperateTimeChanging(value);ReportPropertyChanging("dOperateTime");_dOperateTime = StructuralObject.SetValidValue(value);ReportPropertyChanged("dOperateTime");OndOperateTimeChanged();}}private global::System.DateTime _dOperateTime;partial void OndOperateTimeChanging(global::System.DateTime value);partial void OndOperateTimeChanged();#endregion}

8,ref变量与可null变量巧用

婚姻犹如一艘雕刻的船,看你怎样去欣赏它,又怎样驾驭它。

C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声

相关文章:

你感兴趣的文章:

标签云: