xaf.domain object new 在属性上的用法
有如下业务对象定义:
using System;
using System.Linq;
using System.Text;
using DevExpress.Xpo;
using DevExpress.ExpressApp;
using System.ComponentModel;
using DevExpress.ExpressApp.DC;
using DevExpress.Data.Filtering;
using DevExpress.Persistent.Base;
using System.Collections.Generic;
using DevExpress.ExpressApp.Model;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation; namespace TestXPO.Module.BusinessObjects
{
//往来单位:供应商,客户都是此类的派生类
[XafDefaultProperty("Name")]
[DefaultClassOptions]
public abstract class CompanyUnit : BaseObject
{
public CompanyUnit(Session s) : base(s)
{ }
public string Name
{
get { return GetPropertyValue<string>(nameof(Name)); }
set { SetPropertyValue(nameof(Name), value); }
}
} [DefaultClassOptions]
[XafDefaultProperty(nameof(Address))]
public class Customer : CompanyUnit
{
public Customer(Session s) : base(s)
{ }
public string Address
{
get { return GetPropertyValue<string>(nameof(Address)); }
set { SetPropertyValue(nameof(Address), value); }
}
} [DefaultClassOptions]
public class Provider : CompanyUnit
{
public Provider(Session s) : base(s)
{ } } public class Dept : CompanyUnit
{
public Dept(Session s) : base(s)
{ }
}
//存在某种单据基类:
//使用了CompanyUnit做为属性的类型
//在派生类中new TargetUnit重新定义此属性的类型,则可以成功
//可以达到使用真实类型过滤的作用.
//但如果使用Guid类型声明,并且派生类中用复杂类型,则不能成功
[DefaultClassOptions]
public class FormBase : BaseObject
{
public FormBase(Session session)
: base(session)
{
} public CompanyUnit TargetUnit
{
get { return GetPropertyValue<CompanyUnit>(nameof(TargetUnit)); }
set { SetPropertyValue(nameof(TargetUnit), value); }
}
} [DefaultClassOptions]
public class PMSOrder : FormBase
{
public PMSOrder(Session s) : base(s)
{ }
public new Provider TargetUnit
{
get { return GetPropertyValue<Provider>(nameof(TargetUnit)); }
set { SetPropertyValue(nameof(TargetUnit), value); }
}
} [DefaultClassOptions]
public class SMSOrder : FormBase
{
public SMSOrder(Session s) : base(s)
{ }
public new Customer TargetUnit
{
get { return GetPropertyValue<Customer>(nameof(TargetUnit)); }
set { SetPropertyValue(nameof(TargetUnit), value); }
}
}
}
xaf.domain object new 在属性上的用法的更多相关文章
- paip.提升效率---request自动绑定domain object
paip.提升效率---request自动绑定domain object #.keyword,subtitle关键字,子标题 ------------------------- 复制request属性 ...
- TextBox 绑定到DataTable某一列属性上
将TextBox绑定到DataTable某一列属性上 DataTable dt = GetDataTable() textBox1.DataBindings.Add("Text", ...
- JavaScript之Object对象常用属性与方法手册
MDN Object参考地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Obje ...
- 为什么Object.prototype在Function的原型链上与Function.prototype在Object的原型链上都为true
关于javascript的原型链有一个问题我一直很疑惑:为什么 Function instanceof Object 与 Object instanceof Function都为true呢? Func ...
- 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 SpringBoot是如何实现自动配置的?--SpringBoot源码(四) 温故而知新,我们来简单回顾一下上 ...
- vue2.x版本中Object.defineProperty对象属性监听和关联
前言 在vue2.x版本官方文档中 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html一文的解释当中,Object.defineProperty ...
- 读匿名object对象的属性值
读匿名object对象的属性值 1.定义读object对象值的功能方法 public static class StaticClass { public static string ValueByKe ...
- JS构造函数内的方法与构造函数prototype属性上方法的对比
本文的目的是让大家理解什么情况下把函数的方法写在JavaScript的构造函数上,什么时候把方法写在函数的 prototype 属性上;以及这样做的好处. 为了阅读方便,我们约定一下:把方法写在构造函 ...
- 【阿里云IoT+YF3300】3. Alink物模型之属性上传和下发
[名词解释]属性:设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等.属性支持 GET 和 SET 请求方式.应用系统可发起对属性的读取和设置请求. 在上一篇文章& ...
随机推荐
- 铁乐学Python_day06-整数和字符串小数据池
python小数据池(内存地址) 今天来学习认识一下python中的小数据池. 我们都知道 ==是用来作比较,要是两个变量的数值相等, 用==比较返回的bool值会是True: a = 1000 b ...
- 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户
这是安装biztalk server 2013出现的问题,很多天了没解决,下边这个解决办法也搜到过类似的,但上次实验时出现设置组件权限时发现都是按钮都是灰的,无法操作. 这次设置好了.谢谢ibg. 文 ...
- Elasticsearch 填坑记
前言 技术的发展日新月异,传统企业数据库Oracle.SqlServer.DB2,Mysql等在今日不断的被各种大厂自研数据库取代,当然也有类似Elasticsearch等优秀的满足海量数据所使用的开 ...
- Service Mesh服务网格之Linkerd架构
今天详细介绍一下Linkerd的架构. 控制平面 Linkerd控制平面是一组在专用Kubernetes命名空间中运行的服务(在Linked默认情况下).这些服务完成各种事情——聚合遥测数据.提供面向 ...
- PHP设计模式系列 - 数据访问对象模式
数据访问对象模式 数据访问对象模式描述了如何创建透明访问数据源的对象. 场景设计 设计一个BaseDao基类,实现数据库操作基本的一些query,insert,update方法 在实际使用的过程中,继 ...
- rz -be 上传文件解压失败
在把Windows上的文件传至Linux端时用到SecureCRT,一般小文件都没有问题,文件太大时则出现了上传后的文件只有几K大小,当然大于2个G的是不可能传的上去的了.对于几百M到1G多的大文件要 ...
- JavaScript组合继承的一点思考
今天看<JavaScript高级程序设计>一书中关于组合继承模式时.书上有这么一个Demo程序: <html> <head> </head> <b ...
- FWT背板笔记
板子 背板子.jpg \(Fwt\)用于解决这样的问题 \[C_i=\sum_{j\bigoplus k=i}A_j\times B_k\] 其中\(\bigoplus\)是一种二元运算符,如\(or ...
- POJ3977 Subset
嘟嘟嘟 这个数据范围显然是折半搜索. 把序列分成两半,枚举前一半的子集,存下来.然后再枚举后一半的子集,二分查找. 细节: 1.最优解可能只在一半的子集里,所以枚举的时候也要更新答案. 2.对于当前结 ...
- access数据库及其分页的方法
首先access数据库的话,感觉针对比较小型的网站比较适合.携带方便,不需要按照特定的sql环境. 当然如果使用access数据库的话 1.首先你先要下载办公五合一(access也是其中之一) 2.w ...