1 基本介绍
iBATISNet Database Layer!这个框架将让你能够更好的在 dotnet 应用中设计和实
现实体层。这个框架有两个主要的组成部分,一个是 SQL Maps,另一个是 Data Access
Objects。下面是一个简单的 iBATISNet 应用架构。
2 架构预览
项目中总共 10 个项目
External_bin 需要引用的 dll
MyCompany.Controls 项目中用到的自定义控件
MyCompany.IbatisNet 项目中 IbatisNet 组件
MyCompany.MyProject.Domain 项目对象
MyCompany.MyProject.Persistence 数据库持久化对象
MyCompany.MyProject.Run 项目运行对象
MyCompany.MyProject.Service 业务服务对象
MyCompany.MyProject.UserControls 界面用户控件对象
MyCompany.MyProject.WinFrom 界面对象
MyCompany.Utility 项目中用到的工具集
3 实体对象层
MyCompany.MyProject.Domain
Entity1.cs 源代码
/* =====================================================
作 者 : 陈励
创建时间 : 2008-11-16 22:10:01
修 改 者 :
修改时间 :
描 述 : Entity_1
===================================================== */
using System;
using System.Collections.Generic;
using System.Text;
namespace MyCompany.MyProject.Domain
{
/// <summary>
/// 针对 Entity_1 为IBatisNet创建的类型.
/// </summary>
[Serializable]
public sealed class Entity1
{
#region 私有变量
private bool _isChanged;
private bool _isDeleted;
private string _attribute1old; // Attribute_1
private string _attribute1; // Attribute_1
private string _attribute2; // Attribute_2
private string _attribute3; // Attribute_3
private IList<Entity2> _entity2; // Entity_1
#endregion
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
public Entity1()
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="attribute1">Attribute_1</param>
/// <param name="attribute2">Attribute_2</param>
/// <param name="attribute3">Attribute_3</param>
public Entity1(string attribute1, string attribute2, string attribute3)
{
this.Attribute1 = attribute1;
this.Attribute2 = attribute2;
this.Attribute3 = attribute3;
}
#endregion
#region 公共属性
/// <summary>
/// Attribute_1
/// </summary>
public string Attribute1Old
{
get
{
return _attribute1old;
}
set
{
_attribute1old = value;
}
}
/// <summary>
/// Attribute_1
/// </summary>
public string Attribute1
{
get
{
return _attribute1;
}
set
{
if (value != null && Encoding.Default.GetByteCount(value.ToString()) > 50)
throw new ArgumentOutOfRangeException("Attribute1", value.ToString(),
"Attribute_1_长度超出限制(50)!");
_isChanged |= (_attribute1 != value);
_attribute1 = value;
if (_attribute1old == null)
_attribute1old = _attribute1;
}
}
/// <summary>
/// Attribute_2
/// </summary>
public string Attribute2
{
get
{
return _attribute2;
}
set
{
if (value != null && Encoding.Default.GetByteCount(value.ToString()) > 50)
throw new ArgumentOutOfRangeException("Attribute2", value.ToString(),
"Attribute_2_长度超出限制(50)!");
_isChanged |= (_attribute2 != value);
_attribute2 = value;
}
}
/// <summary>
/// Attribute_3
/// </summary>
public string Attribute3
{
get
{
return _attribute3;
}
set
{
if (value != null && Encoding.Default.GetByteCount(value.ToString()) > 50)
throw new ArgumentOutOfRangeException("Attribute3", value.ToString(),
"Attribute_3_长度超出限制(50)!");
_isChanged |= (_attribute3 != value);
_attribute3 = value;
}
}
/// <summary>
/// Entity_1
/// </summary>
public IList<Entity2> Entity2
{
get
{
return _entity2;
}
set
{
if (value != null)
{
foreach (Entity2 prt in value)
{
prt.Entity1 = this;
}
}
_isChanged |= (_entity2 != value); _entity2 = value;
}
}
/// <summary>
/// 表示实例是否已经发生改变.
/// </summary>
public bool IsChanged
{
get { return _isChanged; }
}
/// <summary>
/// 表示实例是否已经被删除.
/// </summary>
public bool IsDeleted
{
get { return _isDeleted; }
}
#endregion
#region 公共方法
/// <summary>
/// 调用方法,标识实例已经被删除.
/// </summary>
public void MarkAsDeleted()
- 1
- 2
- 3
前往页