4

Visual Studio 2012 を使用して OData wcf データ サービスを作成することに興味があります。ただし、エンティティ モデル フレームワークを使用するのではなく、nosql データセットを使用しないスキームを使用してデータを保存および取得します。Microsoft のエンティティ フレームワークなどの特定のクラス構造に縛られることなく、odata サービスを制御できる方法はありますか。

4

1 に答える 1

4

Entity Framework なしで Microsoft OData 実装を使用できます。必要なのは の実装ですIQueryable。オブジェクトの配列を照会する OData サービスの例を次に示します。

using System.Web.Http;
using System.Web.Http.OData;
using System.Web.Http.OData.Builder;
using System.Web.Http.OData.Query;

// GET api/values
[ActionName("FromList")]
public IList<Poco> GetFromList(ODataQueryOptions<Poco> queryOptions)
{
    IQueryable<Poco> data = (
        new Poco[] { 
            new Poco() { id = 1, name = "one", type = "a" },
            new Poco() { id = 2, name = "two", type = "b" },
            new Poco() { id = 3, name = "three", type = "c" }
        })
        .AsQueryable();

    var t = new ODataValidationSettings() { MaxTop = 25 };
    queryOptions.Validate(t);

    var s = new ODataQuerySettings() { PageSize = 25 };
    IEnumerable<Poco> results =
        (IEnumerable<Poco>)queryOptions.ApplyTo(data, s);

    return results.ToList();
}

public class Poco
{
    public int id { get; set; }
    public string name { get; set; }
    public string type { get; set; }
}
于 2013-05-24T09:44:15.443 に答える