ServiceStack / ORMLite:如何在LoadSingleById中有条件地包含某些列?

时间:2016-05-17 00:27:30

标签: c# attributes servicestack ormlite-servicestack

此项目的要求要求根据用户的权限级别检索/插入某些值。因此,让我假装我有一个数据库表“Users”,这个类代表类成员:

public class UsersDbo
{
   [PrimaryKey]
   [AutoIncrement]
   public int Id { get; set; }

   public string Name { get; set; }
   public string CreditCard { get; set; }
}

我想在用户上调用LoadSingleById,但如果主叫用户未被标记为管理员,我不想填充CreditCard。

我问的原因是因为我正在处理一些非常庞大的表,并且大量的这些值仅与管理员类型的用户相关,并且对数据库进行了大量调用,我只想选择那种情况所需的具体项目。

提前致谢, 克里斯

1 个答案:

答案 0 :(得分:2)

如果要加载引用,则可以调用LoadSingleById,而如果不加载,则调用SingleById,因此可以使用以下命令有条件地加载引用:

var user = isAdmin
    ? db.LoadSingleById<User>(userId)
    : db.SingleById<User>(userId);