如何在Entity Framework Code First中设置0 .. *关系?

时间:2014-09-17 16:11:23

标签: c# entity-framework relationships object-relationships

我有两个类的下一个代码:

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; }
}

我知道使用Entity Framework,这将创建一对多关系,但我想知道的是如何将其转换为零对多关系。

我是实体框架的新手,我无法找到任何直接的答案。

2 个答案:

答案 0 :(得分:7)

对于Entity Framework中的0对多关系,请将外键置为可空。

public int? Object2ID { get; set; }

答案 1 :(得分:3)

另一种方法是使用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);
    }
}