如果一個標誌IsAdmin,作爲AdminUser轉換,否則轉換爲NormalUser。實體框架:基於列值的類型?
只是好奇這個,但不知道如何去做。我確實看到,您可以根據表中的值和另一個表創建一個子對象,如:
SiteUser從表中可以Site_User 管理用戶從表中可以Site_User和Admin_User當Site_User.IsAdmin =真
然而,我很好奇你是否可以這樣做:
如果IsAdmin爲true,則轉換爲AdminUser,否則轉換爲NormalUser,其中AdminUser:SiteUSer和NormalUser:SiteUser但不存在Admin_User表或Normal_User表。這完全是基於相同表格和列值的投射。該類型抱任何的附加信息,只是會像的情況下會有所幫助:
SomeMethod(SiteUser someUser)
{
if(someUser is AdminUser)
{
...
}
else
{
...
}
}
相反的:
SomeMethod(SiteUser someUser)
{
if(someUser.IsAdmin)
{
...
}
else
{
...
}
}
現在我意識到這可能不是最好的例子,但表示該標誌爲多價值屬性,而不是:
SomeMethod(SiteUser someUser)
{
swith(someUser.Role)
{
case(1):
break;
case(2)
break;
}
}
當然,這可能是一個壞主意,但想知道是否有可能。
是的,你可能是正確的第一部分,第二部分並不讓我感到驚訝,因爲我不是100%確定如何問。 – 2009-01-21 18:35:43