一个基于封装CSLA框架后,设计业务类的例子:User .
来源:互联网 发布:数据库备份系统 编辑:程序博客网 时间:2024/05/22 06:41
/// 用户
/// </summary>
[Serializable()]
[Phenix.Core.Data.MapperClass("PH_User", CheckDirtyOnUpdate = true)]
[Phenix.Core.Log.PermanentExecuteActionLog(Phenix.Core.Log.PermanentExecuteAction.UpdateAndDelete)]
[Phenix.Core.Log.PermanentRenovateLog]
public class User : Phenix.Business.BusinessBase<User>
{
#region 属性
public InvestRoles InvestRoles
{
get
{
return GetDetail<InvestRoles, InvestRole>();
}
}
[Phenix.Core.Data.MapperField(ColumnName = "US_ID", IsPrimaryKey = true)]
private long _id = Sequence.NextValue();
/// <summary>
/// 主键
/// </summary>
public long Id
{
get { return _id; }
}
private static PropertyInfo<string> UserNameProperty =
RegisterProperty<string>(typeof(User), new PropertyInfo<string>("UserName", "姓名"));
[Phenix.Core.Data.MapperField(ColumnName = "US_Name", NeedUpdate = true, CheckDirtyOnUpdate = true)]
private string _userName = UserNameProperty.DefaultValue;
/// <summary>
/// 姓名
/// </summary>
public string UserName
{
get
{
return GetProperty<string>(UserNameProperty, _userName);
}
set
{
SetProperty<string>(UserNameProperty, ref _userName, value);
}
}
private static PropertyInfo<string> UserNumberProperty =
RegisterProperty<string>(typeof(User), new PropertyInfo<string>("UserNumber", "工号"));
[Phenix.Core.Data.MapperField(ColumnName = "US_UserNumber", NeedUpdate = true)]
private string _userNumber = UserNumberProperty.DefaultValue;
/// <summary>
/// 登录工号
/// </summary>
[Indexable(IndexModeEnum.IndexModeOnDemand)]
public string UserNumber
{
get
{
return GetProperty<string>(UserNumberProperty, _userNumber);
}
set
{
SetProperty<string>(UserNumberProperty, ref _userNumber, value);
}
}
private static PropertyInfo<string> PasswordProperty =
RegisterProperty<string>(typeof(User), new PropertyInfo<string>("Password", "口令"));
[Phenix.Core.Data.MapperField(ColumnName = "US_Password", NeedUpdate = true)]
private string _password = PasswordProperty.DefaultValue;
/// <summary>
/// 登录口令
/// </summary>
public string Password
{
get
{
return GetProperty<string>(PasswordProperty, _password);
}
set
{
SetProperty<string>(PasswordProperty, ref _password, value);
}
}
#endregion
#region 过程
#region Validation Rules
protected override void AddBusinessRules()
{
base.AddBusinessRules();
this.ValidationRules.AddRule<User>(NoDuplicates, UserNumberProperty);
}
private static bool NoDuplicates(User target, Csla.Validation.RuleArgs e)
{
Users parent = (Users)target.Parent;
if (parent != null)
{
var query = from item in parent
where item.UserNumber == target.UserNumber && !ReferenceEquals(item, target)
select item;
if (query.Count<User>() != 0)
{
e.Description = "登录工号不允许重复";
return false;
}
}
return true;
}
#endregion
#region Authorization Rules
#endregion
#endregion
}
}
- 一个基于封装CSLA框架后,设计业务类的例子:User
- 一个基于封装CSLA框架后,设计业务类的例子:User .
- 一个基于封装CSLA框架后,设计业务类的例子:users
- 一个基于封装CSLA框架后,设计业务类的例子:users .
- CSLA框架试用:业务对象分类
- 接触CSLA框架的感觉
- 基于人吃饭的例子设计一个装饰设计模式:
- 一个基于GLide加载图片的封装开源框架
- 配置CSLA.NET的例子程序:ProjectTracker
- 配置CSLA.NET的例子程序:ProjectTracker
- 对主流框架OKHttp的封装,达到一行代码实现一个业务逻辑
- 一个基于MINA框架应用的最简单例子
- csla之业务逻辑
- 关于csla业务对象
- CSLA框架中的Validation的学习
- 一个封装Volley框架的帮助类
- 基于组件的业务模型---实现框架
- 分享一个基于winForm后台单线程推送多线程并行处理业务的小程序框架
- Windows Phone 7手机越狱教程
- 一个基于封装CSLA框架后,设计业务类的例子:users .
- 硬盘厂商关于硬盘容量的定义说明
- 设置outlook2007保留服务器上的邮件
- WPF备忘录四(事件动画)
- 一个基于封装CSLA框架后,设计业务类的例子:User .
- Ubuntu下设置日语输入法(SCIM输入法设置)
- 持久化日志引擎 .
- GridView添加统计行
- 3层架构
- [JSOI2010]Group部落划分
- 扫雷游戏制作全过程05 之最终话
- 扒一扒2011年我看过的书
- linux C程序中获取shell脚本输出