Given these 2 simples classes:
public class Person
{
[AutoId]
public Guid Id { get; set; }
[Unique]
[Required]
public string Name { get; set; }
[Reference]
public PhoneNumber PhoneNumber { get; set; }
}
public class PhoneNumber
{
[AutoId]
public Guid Id { get; set; }
public Guid PersonId { get; set; }
[Unique]
[Required]
[Index]
public string Number { get; set; }
}
When persisting the above code no foreign keys seems to be created. Is this the default behaviour or am I doing something wrong?
I’ve ended up modifiying the class like so:
public class PhoneNumber
{
[AutoId]
public Guid Id { get; set; }
[References(typeof(Person))]
public Guid PersonId { get; set; }
[Unique]
[Required]
[Index]
public string Number { get; set; }
}
And the foreign key is created.
Is this the usual way this should be done?
I also saw on the forum this variant:
public class PhoneNumber
{
[AutoId]
public Guid Id { get; set; }
[ForeignKey(typeof(Person))]
public Guid PersonId { get; set; }
[Unique]
[Required]
[Index]
public string Number { get; set; }
}
What’s the difference?
Thanks.