First, you shouldn't have to manually create the plural versions of the tables unless you are specifically turning this off with your own implementation of the PluralizationService
I would update your model a bit:
public class Study
{
public Guid Id { get; set; }
public virtual Guid PatientId { get; set; }
//Add the navigation for Patient
public virtual Patient Patient {get;set;}
public string Name { get; set; }
}
Your mapping would look like this. By making the properties virtual you allow for Lazy Loading:
class PatientEntityTypeConfiguration : EntityTypeConfiguration<Patient>
{
public PatientEntityTypeConfiguration()
{
HasKey(p => p.Id);
Property(p => p.Name)
.HasMaxLength(50)
.IsRequired();
HasMany(p => p.Studies)
.WithRequired(s => s.Patient)
.HasForeignKey(s => s.PatientId).WillCascadeOnDelete(false);
}
}