I am trying to reference a foreign key from SpouseId to Id in the Contact table. What is the syntax for doing this? I can\'t seem to find an example. Thanks.
I ha
Something like this will work:
public class Contact
{
public int Id {get;set;}
public string Name {get;set;}
public int? SpouseId {get;set;}
[ForeignKey("SpouseId")]
public Contact Spouse {get;set;}
}
ForeignKeyAttribute has been added to System.ComponentModel.DataAnnotations by CTP5 assembly.
Due to a bug in CTP5, creating an Independent Self Referencing Associations throws an exception. The workaround is to use Foreign Key Associations instead (which is always recommended regardless).
You can also use fluent API to achieve this, if you prefer:
public class Contact
{
public int Id { get; set; }
public string Name { get; set; }
public int? SpouseId { get; set; }
public Contact Spouse { get; set; }
}
public class Ctp5Context : DbContext
{
public DbSet Contacts { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasOptional(c => c.Spouse)
.WithMany()
.HasForeignKey(c => c.SpouseId);
}
}
Working with the Model:
using (var context = new Ctp5Context())
{
Contact contact = new Contact()
{
Name = "Morteza",
Spouse = new Contact()
{
Name = "Code-First"
}
};
context.Contacts.Add(contact);
context.SaveChanges();
}