Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set a 0..* relationship in Entity Framework Code First?

I have the next code for two classes:

public class Object
{
    public int ObjectID { get; set; }

    public int Object2ID { get; set; }
    public virtual Object2 Object2 { get; set; }
}

public class Object2
{
    public int Object2ID { get; set; }

    public virtual ICollection<Object> Objects { get; set; }
}

I know that with Entity Framework, this will create a one-to-many relationship, but what I want to know, is how to transform this to a zero-to-many relationship.

I'm new to Entity Framework and I couldn't find any direct answer around.

like image 613
Jorge Díaz Avatar asked Sep 17 '14 16:09

Jorge Díaz


2 Answers

For a 0-to-many relationship in Entity Framework, have the foreign key be nullable.

public int? Object2ID { get; set; }
like image 50
UtopiaLtd Avatar answered Oct 21 '22 02:10

UtopiaLtd


Another way to do this is by using Fluent API:

public class YouDbContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder mb)
    {
        mb.Entity<Object2>
            .HasMany(o1 => o1.Objects)
            .WithOptional(o2 => o2.Object2);

        base.OnModelCreating(mb);
    }
}
like image 38
Stacked Avatar answered Oct 21 '22 03:10

Stacked