XPO对象之间关系
电脑版发表于:2020/12/2 10:13
一对多
建立主表可读可写属性并使用Association特性进行关联
[Association("采购订单明细")]
[XafDisplayName("采购订单")]
public PurchaseOrder PurchaseOrder
{
get { return _purchaseOrder;}
set {SetPropertyValue(nameof(PurchaseOrder), ref _purchaseOrder, value);}
}
建立从表
[DevExpress.Xpo.Aggregated]//聚合型
[Association("采购订单明细")]
[XafDisplayName("采购订单")]
public XPCollection<OrderDetails> OrderDetails
{
get { GetCollection<OrderDetails>("OrderDetails");}
}
一对一
在角色与用户关联
Userinfo user = null;
public Userinfo User
{
get { return user; }
set
{
if (user == value) return;
Userinfo userinfo = user;
User = value;
if (IsLoading) return;
if (userinfo != null && userinfo.Role == this)
userinfo.Role = null;
if (user != null)
user.Role = this;
OnChanged(nameof(Role));
}
}
在用户与角色关联
Roleinfo role = null;
public Roleinfo Role
{
get { return role; }
set
{
if (role == value)return;
Roleinfo roleinfo = role;
role = value;
if (IsLoading) return;
if (roleinfo != null && roleinfo.User == this)
roleinfo.User = null;
if (role != null)
role.User = this;
OnChanged(nameof(Role));
}
}
多对多
[Association("Userinfo")]
public XPCollection<Userinfo> Userinfo
{
get { return GetCollection<Userinfo>(nameof(Userinfo)); }
}
[Association("Userinfo")]
public XPCollection<Roleinfo> Roleinfo
{
get { return GetCollection<Roleinfo>(nameof(Roleinfo)); }
}