我试图在数据结果中添加一些信息,无论用户是否具有对该实体的读取或写入权限。
让我们假设我有这个实体:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Access> AccessRights { get; set; }
}
AccessRights
保存用户ID以及是否具有读/写访问权限。
目前我只是$expand
AccessRights并计算用户是否在前端具有读/写访问权限。但是,我希望将此计算属性添加到结果中。
json结果示例:
{
id: 1,
name: "foo",
hasReadAccess: true,
hasWriteAccess: true
}
有可能这样做吗?请注意,HasRead/WriteAccess
在模型上不存在,也不应该存在。
答案 0 :(得分:0)
您需要将模型拆分为两个:数据访问模型(从数据访问层获得的内容)和数据传输模型(作为响应发送的内容)。
假设您当前的Foo
类作为数据访问模型,您只需要定义另一个类FooResponse
(或任何适合您的名称),如下所示。
public class FooResponse
{
public int Id { get; set; }
public string Name { get; set; }
public bool HasReadAccess { get; set; }
public bool HasWriteAccess { get; set; }
}
然后定义一个转换函数,该函数从Foo
个实例映射到FooResponse
个实例。 AutoMapper是这项工作的好工具。