7

Web Api コントローラーで次のメソッドを検討してください。

[Queryable(AllowedQueryOptions= AllowedQueryOptions.All)]
public override IQueryable<Mandate> Get()
{
        return new List<Mandate>() { new Mandate() { 
            Id = 1, 
            PolicyNumber = "350000000",
            OpenPositions = new List<OpenPosition>(){ 
                new OpenPosition(){ Id = 1, Amount =2300 },
                new OpenPosition(){ Id = 2, Amount =2100 }
            }},
            new Mandate() { 
                Id = 2, 
                PolicyNumber = "240000000" ,
                OpenPositions = new List<OpenPosition>(){ 
                new OpenPosition(){ Id = 3, Amount =2500 },
                new OpenPosition(){ Id = 2, Amount =2100 }
            }

            } }.AsQueryable<Mandate>();
    }

ここで、リストは手動で作成されます。次の URL を参照すると、次のようになります。

http://localhost:52446/odata/Mandates?$filter=Id eq 1リストから正しい項目を返します。

明らかに、リストはデータベース構造である可能性が高くなります。データは何らかの ORM を使用して取得され、Web API サービスに返されます。

私は Entity Framework を使用していません (レガシー システムのため使用できません)。

この場合、どのように Web API を使用しますか? データアクセスを担当するレイヤーによってフィルターが適用されるように、url パラメーターをどのように変換すればよいでしょうか?

4

1 に答える 1

0

とった。LINQ プロバイダーで正しい方向を示してくれました。私たちが使用しているORM(OpenAccess)で簡単にできることがわかりました。詳細はこちら: http://docs.telerik.com/data-access/developers-guide/using-web-services/asp.net-web-api/developer-guide-wcfservices-web-api-expose-oacontext

于 2015-03-17T07:48:09.673 に答える