Bidirectional 1-1 relation
The bidirectional relationship between a Person and its PhoneNumbers clearly is an 1:m relationship, as indicated by the PhoneNumbers property's type – ObjectList<PhoneNumber>. Bidirectional 1:1 relationships are declared more or less in the same way, with one important difference. You must specify which of the two ends , or tables, holds the foreign key. Here is a 1:1 relationship between a company and its president. Note the ContainsKey parameter in the Company's [ DBBidirectionalRelation ] attribute:
public class Company : DomainObject
{
// The 'Company' table will hold the foreign key
[DBBidirectionalRelation ("PresidentOf", ContainsKey = true)]
[Mandatory]
public virtual Person President { get; set; }
}
public class Person : DomainObject
{
[DBBidirectionalRelation ("President")]
[Mandatory]
public virtual Company PresidentOf { get; set; }
}
, multiple selections available,