通过类优先方法创建实体和动态关系

时间:2011-12-25 07:22:15

标签: entity-framework-4

我对EF4有疑问,想通过一个例子解释一下:

class User
{

    public int Type;
    public object Pointer;

}


class Admin
{

    public Username;
    public Password;
    ...

}

class Manager
{

    public Username;
    public Password;
    ...

}

class Member
{

    public Username;
    public Password;
    ...

}

我想设计一下: 看看User类,如果User.Type == 1我想User.Pointer指向Admin类的对象,如果User.Type == 2我想User.Pointer指向Manager类的对象,最后,如果User.Type == 3我想User.Pointer指向Member类的对象。

但我想知道可以在EF4中设计这个吗?怎么样?是否有任何解决方案来设计类似的东西?我可以在Visual Studio 2010中获得地图详细信息窗口的帮助吗?我需要建议朋友,等待:)

问候,阿里

1 个答案:

答案 0 :(得分:1)

是的,这在EF 4中是可行的,但与你现在尝试做的有点不同。

您可以使用继承,而不是为每个用户类型创建单独的类,并在每个用户类型上定义UserName和Password等属性。

如果您创建基类User并在其上定义UserNamePassword,则可以继承User中的所有其他用户类型。

EF知道如何将它映射到数据库并使用鉴别器列,就像你说的那样,某个索引指向一个类类型。 “映射详细信息”窗口确实是可以帮助您的窗口。在这里,您可以指定鉴别器列的内容以及哪一行应指向哪个实体。

Here is some documentation如果您使用实体模型,可以帮助您进一步提升,or here如果您使用Code First方法。