I have an Item data model:
[DataContract]
public class Item
{
[Key]
[DataMember]
public int ItemId { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public ICollection<ItemImage> Images { get; set; }
}
and it links to ItemImage table through ItemId as foreign key:
[DataContract]
public class ItemImage
{
[Key]
[DataMember]
public int ItemImageId { get; set; }
[Required]
[DataMember]
public int ItemId { get; set; }
[Required]
[DataMember]
public string ImageUrl { get; set; }
[ForeignKey("ItemId")]
public virtual Item Item { get; set; }
}
Everything works before I add the following code in
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ItemImage>()
.HasRequired(ii => ii.Item)
.WithMany()
.HasForeignKey(ii => ii.ItemId)
.WillCascadeOnDelete(true);
}
After specify the cascade delete to true, the Images property in Item couldn't be loaded. Can someone help me figure out what is happening? Thanks a lot!