首页 > 解决方案 > 实体框架:具有同一类的一对多

问题描述

我有以下要求:基本上有两个类对象和属性。我想以这样一种方式对数据库进行建模,即一个对象可以具有许多易于执行的属性。但另一个要求是一个对象也可以有许多其他对象。这怎么可能实现,我需要在我的模型类中做什么来实现这一点?
到目前为止,我有这个:

    public class Object
    {
        public int ID { get; set; }
        public Attribute Attribute { get; set; }

    }

    public class Attribute
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Type { get; set; }
        public Object Object { get; set; }

    }

标签: c#asp.netentity-framework-core

解决方案


我相信您可以将新属性添加到您的对象类中,该属性针对您想要的对象,因此如下所示:

public class Object
{
    public int ID { get; set; }
    public Attribute Attribute { get; set; }
    public Object Object { get; set; }
}

public class Attribute
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Type { get; set; }
    public Object Object { get; set; }

}

但是从提供的代码中,您的 Object 类仅引用 Attribute 类的一个实例,因此您没有您所说的 1:N 关系,而是 1:1!如果你想让 Object 类指向几个 Attributes 和几个 Object Instances,代码应该是这样的:

    public class Object
{
    public int ID { get; set; }
    public Object ParentObject { get; set; }
}

public class Attribute
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Type { get; set; }
    public Object ParentObject { get; set; }
}

编辑:https ://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx


推荐阅读