您的位置:首页 > 其它

【LeanEAP.NET】精益企业应用平台实战----创建AccountGroup表和DTO

2012-05-30 23:55 423 查看
分别在MSSQL和Oracle创建不同的AccountGroup表,创建相应的影射表结构的AccountGroupTable。尽管表的字段名、数据类型不同,通过一定的规则可以得到属性名相同的AccountGroupTable,这样可以实现数据库切换而不修改逻辑代码。

在MSSQL中创建一个AccountGroup的表

View Code

[System.Serializable()]
public class AccountGroupModels : System.Collections.Generic.List<AccountGroupModel>
{

public AccountGroupModels()
{
}

public AccountGroupModels(System.Collections.Generic.IEnumerable<AccountGroupModel> collection) :
base(collection)
{
}
}

/// <summary>
/// <para></para>
/// </summary>
[System.Serializable()]
public partial class AccountGroupModel
{

#region Member Field Region
private int _Id;

private string _Name;

private int _Parent;

private bool _Visible;

private string _UpdateUser;

private System.DateTime _UpdateDate;
#endregion

#region Member Property Region
/// <summary>
/// <para>主键</para>
/// </summary>
[EAP.Data.ColumnInfoAttribute(Visible = false, Queryable = true, DbColumn = "Id")]
public int Id
{
get
{
return _Id;
}
set
{
_Id = value;
}
}

/// <summary>
/// <para>名称</para>
/// </summary>
[EAP.Data.ColumnInfoAttribute(DbColumn = "Name")]
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}

/// <summary>
/// <para>上级组别</para>
/// </summary>
[EAP.Data.ColumnInfoAttribute(DbColumn = "Parent")]
public int Parent
{
get
{
return _Parent;
}
set
{
_Parent = value;
}
}

/// <summary>
/// <para>可见性</para>
/// </summary>
[EAP.Data.ColumnInfoAttribute(DbColumn = "Visible")]
public bool Visible
{
get
{
return _Visible;
}
set
{
_Visible = value;
}
}

/// <summary>
/// <para>修改者</para>
/// </summary>
[EAP.Data.ColumnInfoAttribute(DbColumn = "UpdateUser")]
public string UpdateUser
{
get
{
return _UpdateUser;
}
set
{
_UpdateUser = value;
}
}

/// <summary>
/// <para>修改时间</para>
/// </summary>
[EAP.Data.ColumnInfoAttribute(DbColumn = "UpdateDate")]
public System.DateTime UpdateDate
{
get
{
return _UpdateDate;
}
set
{
_UpdateDate = value;
}
}
#endregion
}


在MSSQL中Id是自增长的int类型,新增后可以通过SELECT SCOPE_IDENTITY()得到Id的值。在Oracle中没有自增长类型,需要创建一个Sequence,然后通过触发器把Sequence的nextval插入到ID列,然后程序中可以读取Sequence的currval得到ID。

AccountGroupModel中Visible属性是bool类型,保存到MSSQL中是bit类型的值,而Oracle没有bit,可以使用Number(1):

MSSQL的AccountGroupTable中 _Visible = new EAP.Data.DbColumn((alias + ".Visible"), System.Data.DbType.Boolean);

Oracle的AccountGroupTable中 _Visible = new EAP.Data.DbColumn((alias + ".VISIBLE"), System.Data.DbType.Int16);

【LeanEAP.NET】精益企业应用平台----系列目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: