2012-04-23 20 views
1

私のapiメソッドは、基になるデータソース(ORMのdatacontext)と常に結びついて、oDataをサポートするクエリ可能な機能を公開する必要があります。遅延実行ASP .NET Web API遅延実行のクエリ可能性

スニペット

public class ProductController : ApiController { 
    public IQueryable<Product> Get() { 
     var dbContext = new DBContext(); 
     return dbContext.Product.AsQueryable(); 
    } 
} 
  1. 私はいつも、その後、どのように、どこネクタイを持っている場合は、私がしなければならない場合、私は、ビジネスの検証を適用することができますか?例:期限切れではない商品を返品したいと思います。
  2. データエンティティを直接公開することで、懸念の分離と密接な連携を犯すことはありませんか?

答えて

1

あなたはルールは以下のように適用されていることができます。

return dbContext.Product.Where(p=> !p.IsExpired).AsQueryable(); 

をあなたの2番目の質問に関しては、それはあなた次第です。あなたがあなたのデータを公開する必要があるなら、あなたはすべきです。 の別のビューを公開したい場合は、ViewModelを作成して公開することができます。

+0

@alistad hoe実行を使用すると、ビューモデルに変換できますか? Learsは式ツリーに追加の式を挿入します... –

関連する問題