2014-01-13 46 views
1

我有一個表查找表,枚舉以及如何對它們進行查詢

圖片

-Id 
-Name 
-StatusId 

和查找表:

ImagesStatus

-Id 
-Name 

什麼將是最好的練習在基於StatusId的圖像表上執行查詢?

1)硬編碼編號:

db.Images.Where(x => x.StatusId == 1); 

3)創建一個枚舉(ImagesStatusEnum)的ImagesStatus表格元素相匹配,然後做:

public enum ImagesStatusEnum 
{ 
    Pending = 1, 
    Approved = 2, 
    Rejected = 3 
} 
int approvedStatusId = (int)ImagesStatusEnum.Approved; 
db.Images.Where(x => x.StatusId == approvedStatusId).ToList(); 

3)別的東西,我沒有想過?

+0

你使用LINQ來sql或EntityFramework ORM? – alexmac

+0

實體框架 – user441365

+0

然後你應該使用@scheien解決方案。 – alexmac

回答

3

在EF5和更新版本中,您可以將實體上的字段映射到現有的枚舉。右鍵單擊模型中的字段(最好輸入int),然後單擊「轉換爲枚舉」。然後您可以設置使用新的枚舉或現有的枚舉。

你可以做你的查詢是這樣的:

db.Images.Where(x => x.StatusId == ImagesStatusEnum.Approved).ToList(); 

我喜歡的枚舉的方式,因爲它提供了更多的可讀性。維護這些枚舉的成本很小。