您的位置:首页 > 其它

一个基于封装CSLA框架后,设计业务类的例子:User .

2012-01-14 09:48 676 查看
/// <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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐