我对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中获得地图详细信息窗口的帮助吗?我需要建议朋友,等待:)
问候,阿里
答案 0 :(得分:1)
是的,这在EF 4中是可行的,但与你现在尝试做的有点不同。
您可以使用继承,而不是为每个用户类型创建单独的类,并在每个用户类型上定义UserName和Password等属性。
如果您创建基类User
并在其上定义UserName
和Password
,则可以继承User
中的所有其他用户类型。
EF知道如何将它映射到数据库并使用鉴别器列,就像你说的那样,某个索引指向一个类类型。 “映射详细信息”窗口确实是可以帮助您的窗口。在这里,您可以指定鉴别器列的内容以及哪一行应指向哪个实体。
Here is some documentation如果您使用实体模型,可以帮助您进一步提升,or here如果您使用Code First方法。