我们假设我有一个名为Gift的表,其中有几个字段。
Gift{
Field1,
Field2,
Field3
}
我有一个WEB API函数,用户/ admin可以通过它检索Gift的记录。但是,我想阻止Field3向用户公开,这意味着只有管理员才能查看所有3个字段。
以下是我的模型类定义:
public class OM_Gift_FE
{
public string Field1 { set; get; }
public string Field2 { set; get; }
public static implicit operator OM_Gift_FE(OM_Gift_BO gift_bo){
return new OM_Gift_FE
{
Field1 = gift_bo.Field1,
Field2 = gift_bo.Field2
};
}
}
public class OM_Gift_BO
{
public string Field1 { set; get; }
public string Field2 { set; get; }
public string Field3 { set; get; }
}
在我的一个API方法中:
List<OM_Gift_EF> bidGifts;
if (userLevel > 2) // admin user at back office
{
bidGifts = objEntity.ExecuteStoreQuery<OM_Gift_BO>("SELECT * FROM gift").ToList();
}
else // user at front end
{
bidGifts = objEntity.ExecuteStoreQuery<OM_Gift_FE>("SELECT * FROM gift").ToList();
}
// continue to process bidGifts
当然它失败了,最简单的解决方法似乎是引入另一个List变量,并在if和else块中重复以下代码。但我很好奇我是否能用一个变量简洁地处理这个问题?
非常感谢。