EF Migration error with Foreign Key Constraint
<p>I'm getting an error with a constraint on two entities and I'm scratching my head with this. I've googled and looked through and tried the suggestions but still no luck. The error I'm getting is as follows :-</p>

<blockquote>
  <p>Introducing FOREIGN KEY constraint
  'FK_dbo.UserTrackableItems_dbo.Users_ModifiedById' on table
  'UserTrackableItems' may cause cycles or multiple cascade paths.
  Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other
  FOREIGN KEY constraints. Could not create constraint or index. See
  previous errors.</p>
</blockquote>

<p>I understand the error but don't see where to fix it. I've removing the [Required], I've tried using the fluent API and I must be doing it wrong. These are the entities it mentions (one of which is a base class).</p>

<pre><code>[Table("UserTrackableItems")]
public class UserTrackableItem : BaseEntity
{
    [Key]
    public long UserTrackableItemId { get; set; }

    [Required]
    public long UserId { get; set; }
    [ForeignKey("UserId")]
    public virtual User User { get; set; }

    [Required]
    public int TrackableItemId { get; set; }
    [ForeignKey("TrackableItemId")]
    public virtual TrackableItem TrackableItem { get; set; }

    [Required]
    public int OrderBy { get; set; }
}

[Table("Users")]
public class User : BaseEntity
{
    [Key]
    public long UserId { get; set; }
    public string Forename { get; set; }
    public string Surname { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public string Hash { get; set; }
    public string AvatarImage { get; set; }
    public DateTime? DateOfBirth { get; set; }
    public int? CountryId { get; set; }
    public DateTime MemberSince { get; set; }
    public bool IsAdmin { get; set; }
    public bool IsWriter { get; set; }
    public bool IsStaff { get; set; }
    public bool IsBanned { get; set; }

    public string OpenId { get; set; }
    public string OpenIdClaim { get; set; }
    public ExternalAuthOrigin ExternalAuthOrigin { get; set; }

    public virtual ICollection&lt;DailyTarget&gt; DailyTargets { get; set; }
    public virtual ICollection&lt;SectionTarget&gt; MealTargets { get; set; }
    public virtual ICollection&lt;Section&gt; Meals { get; set; }
    public virtual ICollection&lt;UserTrackableItem&gt; TrackableItems { get; set; }
}

    public class BaseEntity
{
    public DateTime AddedDate { get; set; }

    public long AddedById { get; set; }

    [ForeignKey("AddedById")]
    public virtual User AddedBy { get; set; }

    public DateTime? DeletedDate { get; set; }

    public long? DeletedById { get; set; }

    [ForeignKey("DeletedById")]
    public virtual User DeletedBy { get; set; }

    public DateTime ModifiedDate { get; set; }

    public long ModifiedById { get; set; }

    [ForeignKey("ModifiedById")]
    public virtual User ModifiedBy { get; set; }
}

[Table("TrackableItems")]
public class TrackableItem
{
    [Key]
    public int TrackableItemId { get; set; }

    [Required]
    public string Name { get; set; }

    public string MeasurementName { get; set; }

    public virtual ICollection&lt;UserTrackableItem&gt; Users { get; set; }

}
</code></pre>