繁体   English   中英

如何在实体框架中配置一对多关系以及继承

[英]How to configure one to many relationship along with inheritance in entityframework

我正在研究实体框架代码优先模式。 在一种情况下,我有以下实体,

public class Toy
{
public int ID {get; set;}
public string Name {get; set;}
}

对于上述实体,已完成所有模型构建配置,并且已创建表。

我们还有另一个实体

public class Kid
{
public string Name {get; set;}
}

对于这个实体,所有的模型构建配置都已经完成,并且在数据库中创建了表格。

现在,我需要维护/配置,孩子和玩具之间存在一对多关系,即一个孩子可以拥有多个玩具

所以我创建了一个将继承Kid类的自定义类,

public class KidToy : Kid
{
public virtual List<Toy> Toys{get; set;}
}

注意:我不能直接在Kid类中添加List Toys属性,但出现循环引用错误。

builder.Entity<Kid>().Map<KidToy>(m => {

            });

            builder.Entity<KidToy>().HasMany(b => b.Toys).WithMany().Map(b =>
            {
                b.MapLeftKey(KidId");
                b.MapRightKey("ToyId");
                b.ToTable("kidToyMap");
            });

我不需要为自定义模型类(KidToy)创建表,并且我需要配置一对多关系。 你能指导我吗?

用这个 :

public class Toy
{
    public int ID { get; set; }
    public string Name { get; set; }

    public int KidID { get; set; }

    [ForeignKey("KidID")]
    [InverseProperty("Toys")]
    public virtual Kid Kid { get; set; }
}

public class Kid
{
    public string Name { get; set; }

    [InverseProperty("Kid")]
    public virtual ICollection<Toy> Toys { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM