即使在阅读在线文档后,我也无法理解所有这些[协会]的内容。我有这个数据库
如何在devExpress XAF(c#)中建立一对一的关系?例如,Очередь-ServIdtoУслуги - Id?我应该添加什么?
这是我的代码
СlassQueue是“Очередь”
[DefaultClassOptions, ObjectCaptionFormat("{0:ClientNumber}"), DefaultProperty("ClientNumber"), XafDisplayName("Моя очередь"), ImageName("BO_List")]
public class Queue : BaseObject
{
public Queue(Session session) : base(session) { }
private String _ClientStatus;
[Size(50)]
[XafDisplayNameAttribute("Статус")]
public String ClientStatus
{
get { return _ClientStatus; }
set { SetPropertyValue("ClientStatus", ref _ClientStatus, value); }
}
private int _ServId;
[XafDisplayNameAttribute("Id")]
public int ServId
{
get { return _ServIdr; }
set { SetPropertyValue("ServId", ref _ServId, value); }
}
private int _ClientNumber;
[XafDisplayNameAttribute("Номер в очереди")]
public int ClientNumber
{
get { return _ClientNumber; }
set { SetPropertyValue("ClientNumber", ref _ClientNumber, value); }
}
private DateTime _GetDate;
[XafDisplayNameAttribute("Дата")]
public DateTime GetDate
{
get { return _GetDate; }
set { SetPropertyValue("GetDate", ref _GetDate, value);}
}
}
服务是“Услуги”
//Услуги
public class Services : BaseObject
{
public Services(Session session) : base(session) { }
private String _Name;
[Size(SizeAttribute.Unlimited)]
public String Name
{
get { return _Name; }
set { SetPropertyValue("Name", ref _Name, value); }
}
}
谢谢
答案 0 :(得分:1)
定义对象之间关系的方式取决于您的业务逻辑要求。文档中描述了一对一关系:How to: Implement One-to-One Relationships。但是,您需要考虑两点:
要确定您需要哪种类型的关联,您必须回答一个问题“如何向最终用户显示数据?”。
如果要在显示队列详细信息数据时显示服务名称,请将Queue.ServId属性类型更改为“服务”。这就足够了。
如果它不是一对一关系,并且将有多个与单个服务关联的队列项,则可能需要在显示服务详细信息数据时显示队列项的集合。为此,您需要声明完整关联。除了更改Queue类中的外键属性类型之外,还需要在Service类中声明一个collection属性。本文介绍了此技术:Introduction to One-to-Many Relationships。
仅当您需要逻辑限制用户将多个队列项目与单个服务项目相关联时,您才会声明一对一关联。在这种情况下,您需要更新数据库模式,因为Услуги表需要一个单独的列来存储对Очередь表的引用。
答案 1 :(得分:0)
public class Departman : XPObject
{
public Departman(Session session)
: base(session)
{
}
public override void AfterConstruction()
{
base.AfterConstruction();
}
[Association]
public Fabrika Fabrika;
}
公共类Fabrika:XPObject { 公共Fabrika(会话会议) :基地(会话) { } public override void AfterConstruction() { base.AfterConstruction();
}
[Association]
public Departman Departman;
}