Telerik OpenAccess で生成されたデータ モデルで LINQ を使用して、検索クエリを設定し、結果を取得しています。これはすべて非常にうまく機能し、コードは非常に見栄えがします。しかし、もう1つ追加する必要がありますが、どうすればよいかわかりません。私が選択している製品は、顧客ごとに異なる価格を設定する必要があります。価格は、他の 2 つの SQL テーブルの他の値によって異なります。現在、SQL スカラー関数で価格計算を行っていますが、それを LINQ と組み合わせて使用する方法がわかりません。
私の目標は、1 回のデータベース ラウンドトリップですべてのデータを取得し、この計算された価格列でも並べ替えできるようにすることです。
今、私は次のようなものを持っています:
var products = (from p in Products select p);
if(searchOption)
products = products.Where(product => product.Name.Contains(searchOption));
products = products.OrderByDescending(product => product.Name);
products = products.Skip(pageNr * pageSize).Take(pageSize);
もちろん、Product クラスのすべてのプロパティを使用できますが、たとえば、Product.CalculatedPrice などの新しい仮想/計算プロパティも使用できるようにしたいと考えています。
少しはこんな感じになればいいな、という感じです。
(from p in Products
select new {
productId = p.ProductId,
name = p.Name,
calculatedPrice = CalculatedValueFromStoredProcedure/OrScalarFunction(p.ProductId, loggedInCustomerId)
});
よろしく、 Tys