一个基于封装CSLA框架后,设计业务类的例子:User
来源:互联网 发布:传奇霸业数据汇总 编辑:程序博客网 时间:2024/05/01 12:38
/// <summary>
/// 用户
/// </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后台单线程推送多线程并行处理业务的小程序框架
- 一个基于封装CSLA框架后,设计业务类的例子:users
- java连接oracle
- 顺序表
- 完美的文本只能输入数字问题!
- hibernate下实现分页实例
- 一个基于封装CSLA框架后,设计业务类的例子:User
- 为GridView删除添加确认对话框
- 理解缓存
- TCP 协议文件传输示例
- VC下ADO访问远程ORACLE数据库
- db2 offline backup shell
- 判断素数问题(C语言实现)
- Server.MapPath
- db2 online backup shell