我有一张桌子
图片
-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)我还没想过别的什么?
答案 0 :(得分:3)
在EF5及更新版本中,您可以将实体上的字段映射到现有枚举。右键单击模型中的字段(最好键入int),然后单击“转换为枚举”。然后,您可以设置使用新的枚举或现有的枚举。
你可以这样做:
db.Images.Where(x => x.StatusId == ImagesStatusEnum.Approved).ToList();
我更喜欢enum方式,因为它提供了更多的可读性。维护这些枚举的成本很低。