0

ASP.NET Web API と Entity Framework を使用して、C# で最初の RESTful API を作成しようとしています。

私の問題は、EF クエリから返されるリストが、役に立たないエンティティ キー情報で汚染されていることです (列がすべてキーである必要があると考えると、列が null 可能であることがわかりました)。

これは、API 呼び出しから受け取った XML 応答の一部です。

<syemploy z:Id="i1"><EntityKey z:Id="i2">
<d2p1:EntityContainerName>AbraHRMS_LiveEntities</d2p1:EntityContainerName>
<d2p1:EntityKeyValues>
    <d2p1:EntityKeyMember>
       <d2p1:Key>id_col</d2p1:Key>
       <d2p1:Value i:type="d5p1:int">15</d2p1:Value>
    </d2p1:EntityKeyMember>
    <d2p1:EntityKeyMember>
       <d2p1:Key>e_address1</d2p1:Key>
       <d2p1:Value i:type="d5p1:string">153 Townsend Street, Suite 9057</d2p1:Value>
    </d2p1:EntityKeyMember>
...

応答からエンティティ キーの値を削除するにはどうすればよいですか? 私のC#コードは次のようになります

 AbraHRMS_LiveEntities _db = new AbraHRMS_LiveEntities();

 # GET api/employee
 public List<MvcApplication1.DAL.syemploy> Get()
 {
    return _db.syemploys.ToList();
 }

繰り返しますが、これは C# での初めての API です。そのため、ファンキーな外観があれば、遠慮なく指摘してください。

4

1 に答える 1

0

デフォルトでは、エンティティのすべてのパブリックプロパティがXMLで保持されます。それらが応答しないようにするには、望ましくないフィールドを含まない「new」クラスを作成してから、結果を「new」タイプのオブジェクトのリストに変換してみてください。そのために、_db.syemployesで.Select()または.Cast()を使用できます。Cast <>メソッドを呼び出す場合は、syemployクラスを「new」クラスに変換できる必要があることに注意してください。C#での型変換についてはこちらをご覧ください。.Select()を使用する場合は、selectのラムダ式内に新しいタイプのオブジェクトを作成します。

于 2012-08-01T00:52:25.067 に答える