9

2 つの Odata アクション メソッドが定義されています。パラメーターを持つものは呼び出されますが、パラメーターのないものは呼び出されず、エラーがスローされます テンプレート '~/entityset' を持つ OData パスのアクションを選択するためのルーティング規則が見つかりませんでした。

これが私のアクションメソッドのコードです

[EnableQuery]
    public IQueryable<User> GetUser()
    {
        return db.Users;
    }

    // GET: odata/User(5)
    [EnableQuery]
    public SingleResult<User> GetUser([FromODataUri] int key)
    {
        return SingleResult.Create(db.Users.Where(user => user.Id == key));
    }

私が使用しているクエリは次のとおりです

http://bureauservice/api/odata/UserOdata - Doesnt work
http://bureauservice/api/odata/UserOdata(1) - works

最初のリンクが機能しない理由を教えてください。

4

3 に答える 3

14

entityset を返すメソッドの名前を " Get[EntitySetName]" または " Get" に変更してください。

から変更する

public IQueryable<User> GetUser()

public IQueryable<User> GetUserOdata()

または

public IQueryable<User> Get()
于 2014-07-15T07:06:15.760 に答える
0

最初の URL に括弧を追加することができます。

http://bureauservice/api/odata/UserOdata() 

odata のプロアクティブ化を開始したばかりの場合、Odata v4 は OASIS 標準であるため、出発点として適していますが、v3 はそうではありません。

v4 バージョンの関数サンプルは次のとおりです: https://github.com/OData/ODataSamples/tree/master/WebApiCore/ODataFunctionSample

于 2014-07-14T23:47:49.870 に答える