2015-06-15 69 views
0

我是MVC和Entity框架中的新成員,所以我在第一個項目中遇到了一些問題。很抱歉,如果我的問題是菜鳥:(如何在ASP.NET MVC中顯示枚舉

我在這一點上有什麼:
我有表的用戶(ID,姓名,密碼,TYPEID,StatusID)和我對這個領域的查找表TYPEID,StatusID UserTypes和UserStatuses。

這裏是爲了更清楚

CREATE TABLE [dbo].[Users](
    [ID] [int] NOT NULL, 
    [Name] [varchar](512) NOT NULL, 
    [Password] [varchar](128) NOT NULL, 
    [TypeID] [int] NULL, 
    [StatusID] [int] NULL 
) 

CREATE TABLE [dbo].[UserStatuses](
    [ID] [int] NOT NULL, 
    [Description] [nvarchar](128) NULL 
) 


CREATE TABLE [dbo].[UserTypes](
    [ID] [int] NOT NULL, 
    [Description] [nvarchar](128) NULL 
) 

一些代碼在UserStatuses表我店 「活動」, 「阻止」 和UserTypes 「管理員」, 「用戶」,「客人「

價值觀UserTypes在未來MEY變化的話,我不慣於Users.TypeID字段轉換在枚舉(這是很重要的我!)

我需要什麼:
如何在我生成視圖時,顯示TypeID字段的用戶友好值「active」,「Blocked」用於StatusID和「Admin」,「User」,「guest」,而不是數字編輯器?

鏈接到一些好的文章是值得歡迎的笑臉:)

回答

1

EntityFramework允許您在POCO實體類中聲明它稱之爲「Navigational Property」。欲瞭解更多信息,請閱讀here。所以在你

區分你所能做的就是在代表UserStatusesUserTypesUsers POCO實體類申報一個導航屬性,如下圖所示:

public class User 
    { 
     public int id { get; set; } 

     // Other properties representing table columns here 

     public UserStatus UserStatus { get; set; } 
     public UserType UserType { get; set; } 
    } 

    public class UserStatus 
    { 
     public int Id { get; set; } 
     public string Description { get; set; } 
    } 

現在,你可以參考對應一個用戶UserStatus對象。即在UI中,您可以使用user.UserStatus.Description來顯示值。