查找表,枚举以及如何查询它们

时间:2014-01-13 17:56:50

标签: asp.net linq

我有一张桌子

图片

-Id
-Name
-StatusId

和查找表:

ImagesStatus

-Id
-Name

基于StatusId对图像表进行查询的最佳做法是什么?

1)硬编码Id:

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

3)创建一个与ImagesStatus表元素匹配的枚举(ImagesStatusEnum)然后执行:

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

3)我还没想过别的什么?

1 个答案:

答案 0 :(得分:3)

在EF5及更新版本中,您可以将实体上的字段映射到现有枚举。右键单击模型中的字段(最好键入int),然后单击“转换为枚举”。然后,您可以设置使用新的枚举或现有的枚举。

你可以这样做:

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

我更喜欢enum方式,因为它提供了更多的可读性。维护这些枚举的成本很低。