1

Deferred Executionの利点を備えた oData をサポートするクエリ可能な機能を公開するために、API メソッドは常に基になるデータソース (ORM のデータコンテキスト) に結び付けるべきですか?

スニペット

public class ProductController : ApiController { 
    public IQueryable<Product> Get() { 
        var dbContext = new DBContext(); 
        return dbContext.Product.AsQueryable(); 
    } 
}
  1. 常に関連付ける必要がある場合、必要に応じてビジネス検証をどこでどのように適用できますか? 例: 有効期限が切れていない商品を返品したい。
  2. データ エンティティを直接公開することで、関心の分離や密結合に違反していませんか?
4

1 に答える 1

1

以下のようにルールを適用できます。

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

2番目の質問に関しては、あなた次第です。データを公開する必要がある場合は、公開する必要があります。データの代替ビューを公開する場合は、 ViewModelを作成して公開できます。

于 2012-04-23T16:07:20.563 に答える