实体框架关联

时间:2013-11-19 17:23:59

标签: entity-framework database-design

我无法想出这个问题的神奇搜索词,所以我会问。 代码优先,实体框架4.x

class Object1 
{
    // a reference to Object2, 3, 4, or 5
}

class Object2
{
}

class Object3
{
    private List<Object2> data;
}

class Object4:Object3
{
}

class Object5:Object3
{

}

如何创建Object1,使其包含object2,3,5,5的对象? Object1只能引用其中一个其他对象

我一直在玩一个抽象类,然后把它推到Object 1中,但是当我公开一个从Object3迭代集合的方法时它变得笨拙。

我确信我错过了一些明显的东西,因为这一定是一个常见的问题。

根据第一个回复,我试图让问题尽可能简单并留下详细信息,所以让我重新解决问题

class Object1
{
    public int i;
    public string something;
    public string somethingelse;
    // a reference to Object2, 3, 4, or 5
}

因此它不是来自Object1的继承,而其他对象没有这些属性。 Object1将其他东西联合起来,包括Object 2,3,4,5的一个实例......但只有一个实例

1 个答案:

答案 0 :(得分:0)

Object1类不需要引用任何其他类。您可以让每个类继承自Object1,也可以使Object2继承自Object1,Object3继承自Object2,依此类推。这取决于你想要达到的目标。

在任何一种情况下,您都可以将ObjectX传递给Object1。

public class Object1
{
    public int Age { get; set; }
}

public class Object2 : Object1
{

}

public class Object3 : Object1
{

}

然后你可以这样:

public void PrintAge(Object1 obj)
{
    Console.WriteLine("The age is: {0}", obj.Age);
}

var myObj = new Object3();
myObj.Age = 18;
PrintAge(myObj);