0

ユーザーがエンティティへの読み取りまたは書き込みアクセス権を持っているかどうかに関係なく、データ結果に情報を追加しようとしています。

私がこのエンティティを持っているとしましょう:

public class Foo
{
   public int Id { get; set; }
   public string Name { get; set; }
   public virtual ICollection<Access> AccessRights { get; set; }
}

ユーザー ID を保持する場所AccessRightsと、読み取り/書き込みアクセス権があるかどうか。

現在、私は$expandAccessRights だけで、ユーザーがフロントエンドで読み取り/書き込みアクセス権を持っているかどうかを計算します。ただし、この計算されたプロパティを結果に追加したいと思います。

json の結果の例:

{
   id: 1,
   name: "foo",
   hasReadAccess: true,
   hasWriteAccess: true
}

これを行うことは可能ですか?HasRead/WriteAccessモデルには存在せず、存在すべきでもないことに注意してください。

4

1 に答える 1

0

モデルを 2 つに分割する必要があります。データ アクセス モデル (データ アクセス レイヤーから取得するもの) とデータ転送モデル (応答として送信するもの) です。

現在のクラスをデータ アクセス モデルと仮定すると、次のように別のクラス(または任意の名前)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; }
}

次に、インスタンスからインスタンスにマップする変換関数を定義します。AutoMapperは、この仕事に適したツールです。FooFooResponse

于 2016-01-03T05:44:26.083 に答える