逆水行船

别人的天堂,是我的异乡;无端的繁华,倍添我的惆怅

 

代码升级

1:修改Add方法:
/// <summary>
        /// 添加一条记录。
        /// </summary>
        /// <param name="detail">一条记录</param>
        /// <returns>true 成功 false 失败</returns>
        /// <example>调用案例:
        /// <code>
        /// TableBN bn = new TableBN();
        /// OrderDT baseDT = new OrderDT();
        /// baseDT.ID = 1;
        /// baseDT.Name = "订单1";
        /// bool result = bn.Add(baseDT);
        /// </code>
        /// </example>
        public new bool Add(BaseDT detail)
        {
            Data.ObjectBroker.Create(detail);
            return true;
        }

2:添加DT类的配置文件:
RecorderDT.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
  <class name="Data.RecorderDT, Data" table="Recorder" discriminator-value="C">
    <id name="RedId" type="Int32" column="RedId" unsaved-value="0">
      <generator class="identity"/>
    </id>
    <property name="CreateDate" type="String" column="CreateDate" insert="false" />
    <property name="RecDate" type="String" column="RecDate" />
    <property name="RecType" type="Int32" column="RecType" />
    <property name="RecValue" type="Decimal" column="RecValue" />
    <property name="Remark" type="String(250)" column="Remark" />
  </class>
</hibernate-mapping>

RecorderDT.cs:
/// <copyright>Xumingxsh  1999-2006</copyright>
/// <version>1.0</version>
/// <author>Xuming</author>
/// <email>Xumingxsh21@126.com</email>
/// <log date="2006-05-30">创建</log>

using System;
using System.Data;

namespace Data
{
 /// <summary>
 /// Recorder表的描述类。
 /// </summary>
 /// <author>Xuming</author>
 /// <log date="2006-05-30">创建</log>
 public class RecorderDT : BaseDataDT
 {
  public RecorderDT() : base()
  {
  }

  /// <summary>
  /// 记录ID。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private int _RedId;

  /// <summary>
  /// 记录时间。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private string _CreateDate;

  /// <summary>
  /// 花销日期。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private string _RecDate;

  /// <summary>
  /// 花销类型。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private int _RecType;

  /// <summary>
  /// 花销金额。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private decimal _RecValue;

  /// <summary>
  /// 备注。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private string _Remark;

  /// <summary>
  /// 记录ID。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public int RedId
  {
   set
   {
    _RedId = value;
   }
   get
   {
    return _RedId;
   }
  }

  /// <summary>
  /// 记录时间。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public string CreateDate
  {
   set
   {

    _CreateDate = value;
   }
   get
   {
    return _CreateDate;
   }
  }

  /// <summary>
  /// 花销日期。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public string RecDate
  {
   set
   {

    _RecDate = value;
   }
   get
   {
    return _RecDate;
   }
  }

  /// <summary>
  /// 花销类型。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public int RecType
  {
   set
   {

    _RecType = value;
   }
   get
   {
    return _RecType;
   }
  }

  /// <summary>
  /// 花销金额。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public decimal RecValue
  {
   set
   {
    _RecValue = value;
   }
   get
   {
    return _RecValue;
   }
  }

  /// <summary>
  /// 备注。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public string Remark
  {
   set
   {

    _Remark = value;
   }
   get
   {
    return _Remark;
   }
  }
 }
}


RectypeDT.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" >
  <class name="Data.RectypeDT, Data" table="RecType">
   <id name="RecTypeId" type="Int32" column="RecTypeId">
    <generator class="identity"/>
   </id>
   <property name="RecTypeName" type="String(10)" column="RecTypeName" />
   </class>
</hibernate-mapping>

RectypeDT.cs:
/// <copyright>Xumingxsh  1999-2006</copyright>
/// <version>1.0</version>
/// <author>Xuming</author>
/// <email>Xumingxsh21@126.com</email>
/// <log date="2006-05-30">创建</log>

using System;
using System.Data;

namespace Data
{
 /// <summary>
 /// Rectype表的描述类。
 /// </summary>
 /// <author>Xuming</author>
 /// <log date="2006-05-30">创建</log>
 [Serializable()]
 public class RectypeDT : BaseDataDT
 {
  public RectypeDT() : base()
  {
  }

  /// <summary>
  /// 花销类型编号。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private int _RecTypeId;

  /// <summary>
  /// 花销类型名称。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  private string _RecTypeName;

  /// <summary>
  /// 花销类型编号。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public int RecTypeId
  {
   set
   {
    _RecTypeId = value;
   }
   get
   {
    return _RecTypeId;
   }
  }

  /// <summary>
  /// 花销类型名称。
  /// </summary>
  /// <author>Xuming</author>
  /// <log date="2006-05-30">创建</log>
  public string RecTypeName
  {
   set
   {

    _RecTypeName = value;
   }
   get
   {
    return _RecTypeName;
   }
  }
 }
}

3:修改添加记录:
/// <summary>
  /// 添加花销记录。
  /// </summary>
  public void AddRecorder(RecorderDV detail)
  {
   int recId = GetTypeId(detail.RecTypeName);

   detail.RecType = recId;
            this.Add(detail);
  }

/// <summary>
  /// 取得类型编号。
  /// </summary>
  /// <param name="recTypeName"></param>
  /// <returns></returns>
  private int GetTypeId(string recTypeName)
  {
   if (!IsExistType(recTypeName))
   {
    RectypeDT detail = new RectypeDT();
    detail.RecTypeName = recTypeName;
    this.Add(detail);
   }

   RectypeSQL sql = new RectypeSQL();
   SqlInfo info = sql.GetTypeID(recTypeName);

   return this.GetRows(info);
  }

修改后的AddRecorder:
/// <summary>
        /// 添加花销记录。
        /// </summary>
        public void AddRecorder(RecorderDV detail)
        {
            int recId = GetTypeId(detail.RecTypeName);

            detail.RecType = recId;

            RecorderDT dtDetail = new RecorderDT();
            dtDetail.RecDate = detail.RecDate;
            dtDetail.RecType = detail.RecType;
            dtDetail.RecValue = detail.RecValue;
            dtDetail.Remark = detail.Remark;
            this.Add(dtDetail);
        }

4:接下来,是把取得花销类型ID和添加花销记录合起来,用NHibernate实现。
步骤:1)修改DT类;2)修改配置文件;3)修改AddRecorder和GetTypeId方法。

posted on   荣-  阅读(235)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

导航

统计

点击右上角即可分享
微信分享提示