[关闭]
@Aiti 2017-04-20T04:54:19.000000Z 字数 1237 阅读 251

XPO实体类中的函数/

未分类


子类继承基类中以实现的方法;并覆盖基类中方法

在基类(父类)中用virtual修饰符声明一个虚方法,然后在在派生类(子类)中用override修饰符覆盖基类虚方法。表明是对基类的虚方法重载。
这种优势在于它可以在程序运行时再决定调用哪一个方法,这就是所谓的“运行时多态”
或者称动态绑定。

基类中继承了一个接口实现的方法:
[DisplayName("流程编码")]
public virtual string FlowCode => "TunnelTest";
子类中想要重新赋值:
[DisplayName("流程编码")]
public override string FlowCode => "PrimarySupport";

OnSaving:类属性记录在保存时进行操作的函数

可对数据重新赋值、计算保存到数据库!

  1. protected override void OnSaving()
  2. {
  3. base.OnSaving();
  4. if (Properties.Contains("4") && Content.Contains("Images/")&&Preview==null)
  5. {
  6. // 查找文章中第一次出现的字符串(第一个字符)的位置;并将长度的字符串取出
  7. int start = Content.IndexOf("Images/") + 7;
  8. int end = Content.IndexOf("alt") - 2;
  9. var p = Content.Substring(start, end - start);
  10. if (p != null)
  11. Preview = "../News/Images/" + p;
  12. }
  13. if (Oid < 0)
  14. {
  15. Creator = Session.FindObject<CsUser>(CriteriaOperator.Parse("LoginName=?", HttpContext.Current.User.Identity.Name));
  16. Department = ScopeHelper.GetScope(Creator.Department);
  17. }
  18. }

OnDeleting:类属性记录在删除时进行操作的函数

删除时如果有关联表;需要先删除关联表信息;在删除信息

  1. protected override void OnDeleting()
  2. {
  3. var views = new XPCollection<View>(Session, CriteriaOperator.Parse("Article.Oid=?", Oid));
  4. Session.Delete(views);
  5. Session.Save(views);
  6. var approvals = new XPCollection<ApprovalRecord>(Session, CriteriaOperator.Parse("[Type]=? AND TargetId=?", FlowCode, Oid));
  7. Session.Delete(approvals);
  8. Session.Save(approvals);
  9. base.OnDeleting();
  10. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注