OData をサポートする ASP.NET MVC 4 Web-Api サービスがあります。
サービスの主なコンポーネントは次のとおりです。
モデル:
namespace OdataServiceTest.Models
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
public EnumType Gender { get; set; } // Complex Type
}
public class EnumType
{
[XmlAttribute]
public int Key { get; set; }
[XmlText]
public string Value { get; set; }
}
}
そしてコントローラー:
public class PersonsController : ApiController
{
// GET api/Persons
[Queryable]
public IQueryable<Person> Get()
{
Person[] person = new Person[] {
new Person() { Name="Ronen", Age=23, Gender=new EnumType() { Key=1,Value="Male" } }
};
return person.AsQueryable();
}
}
空のクエリは次の結果を返します
<ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Person>
<Name>Ronen</Name>
<Age>23</Age>
<BirthDate>0001-01-01T00:00:00</BirthDate>
<Gender Key="1">Male</Gender>
</Person>
</ArrayOfPerson>
複合型である性別フィールドのクエリを次のようにします。
http://localhost:7116/api/Persons?$filter=Gender eq 1
このタスクを達成するにはどうすればよいですか?