C# DevXpress XAF中的关系是如何组织的
即使在阅读了在线文档之后,我也无法理解所有这些[协会]的东西。我有这个数据库 如何在devExpress XAF(c#)中建立一对一关系?例如,从Сччччччччч-ServId到Учччч1095?我应该补充什么 这是我的密码 Сlass队列为“чччччччч” 服务是“УСаГа”C# DevXpress XAF中的关系是如何组织的,c#,database,orm,devexpress,xpo,C#,Database,Orm,Devexpress,Xpo,即使在阅读了在线文档之后,我也无法理解所有这些[协会]的东西。我有这个数据库 如何在devExpress XAF(c#)中建立一对一关系?例如,从Сччччччччч-ServId到Учччч1095?我应该补充什么 这是我的密码 Сlass队列为“чччччччч” 服务是“УСаГа” 谢谢定义对象之间关系的方式取决于您的业务逻辑需求。文档中描述了一对一关系:。但是,您需要考虑两点: 如果要映射到现有数据库,则不能以这种方式声明关系,因为УСччччччччч表没有单独的列引用该关系。因
谢谢定义对象之间关系的方式取决于您的业务逻辑需求。文档中描述了一对一关系:。但是,您需要考虑两点:
- 如果要映射到现有数据库,则不能以这种方式声明关系,因为УСччччччччч表没有单独的列引用该关系。因此,如果无法更改数据库,则只能声明一对多关系李>
- 如果要基于模型生成数据库,则可以根据需要声明关系。然而,我不确定你是否真的想要一对一的关系。我将进一步阐述这一点
- 如果要在显示队列详细信息数据时显示服务名称,请将queue.ServId属性类型更改为Services。这就足够了
- 如果不是一对一关系,并且将有多个队列项目与单个服务关联,则在显示服务详细信息数据时,您可能希望显示队列项目的集合。为此,您需要声明完全关联。除了更改队列类中的外键属性类型外,还需要在服务类中声明集合属性。本文介绍了此技术:
- 只有当您需要在逻辑上限制用户将多个队列项目与单个服务项目关联时,才会声明一对一关联。在这种情况下,您将需要更新数据库模式,因为Учччччччч表需要一个单独的列来存储对该表的引用
[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); }
}
}
public class Departman : XPObject
{
public Departman(Session session)
: base(session)
{
}
public override void AfterConstruction()
{
base.AfterConstruction();
}
[Association]
public Fabrika Fabrika;
}
}
[Association]
public Departman Departman;
}