I have the following entity:

```
 public class TravelCoverageType
 {
     public int Code { get; set; }

     public virtual TravelCoverageType PreventedBy { get; set; }

     public ICollection<TravelCoverageType> PreventCoverages { get; set;}
     ...
 }

```

Each `TravelCoverageType` can prevent 0 or more `TravelCoverageType`s.

I'm using fluent API, but can't figure out how to describe this relation. 

I've tried: 

```
public TravelCoverageTypeConfiguration()
        {
            ToTable(ConfigConstants.TypeTablePrifix + typeof(TravelCoverageType).Name + "s");
            HasKey(ct => ct.Code);

            HasMany(tc => tc.PreventCoverages)
                .WithOptional(tc=>tc.PreventedBy)
                .HasForeignKey(tc => tc.Code);
        }  

```

But I get the following error: 

> 
> System.Data.Entity.Edm.EdmAssociationType: : Multiplicity conflicts with the referential constraint in Role 'TravelCoverageType\_PreventCoverages\_Source' in relationship 'TravelCoverageType\_PreventCoverages'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'.
> 
> 
> System.Data.Entity.Edm.EdmAssociationEnd: : Multiplicity is not valid in Role 'TravelCoverageType\_PreventCoverages\_Target' in relationship 'TravelCoverageType\_PreventCoverages'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'. 
> 
> 
> 

(I've added `PreventedBy` to make defining the relation simpler, I don't really need it) 

How is that done?