Web API プロジェクト ASP.NET MVC 4.0 RC 内のエンティティ フレームワークを使用して、ODP.net で Odata フィルターを使用しようとしています。OwnDTO の IQueryable を返したい。詳細なしで内部 500 エラーが発生します。webapi RC にエラー生成のバグがあることは知っていますが、バグが私の問題だとは思いません。
Get http://localhost:51744/api/Owner called using Fiddler
[Queryable]
public IQueryable<OwnDTO> Get()
{
using (Entities context = new Entities())
{
var query = from item in context.Owners
select
new OwnDTO
{
Name = item.Name
};
return query.AsQueryable();
}
}
//非常に単純な例
public class OwnDTO
{
public string Name;
}
Oracle EF によって生成されたクラス (DAO) を使用して Get から戻る必要はありませんが、EntityObject をより使いやすいインターフェイスに置き換えればできることはわかっています。IEnumerable を返すと動作しますが、Odata フィルターが必要です。
誰かが実際の例を望んでいる場合に備えて更新してください。Automapper または simliar を linq で使用し、コンテキストを注入する必要があります。
[Queryable]
public IQueryable<OwnDTO> Get()
{
{
var query = from item in Hack._EFContext.Owners
select
new OwnDTO
{
Name = item.Name
};
return query.AsQueryable();
}
}
それは正常に動作しますが、Odata は RC 後に削除されたようです。そのため、別のパスを検索する必要があります。