我在 Telerik OpenAccess 生成的数据模型上使用 LINQ 来设置搜索查询并获取结果。这一切都很好,代码看起来非常好。但现在我需要再添加一件事,我不知道该怎么做。我选择的产品应该为每个客户提供不同的价格。价格取决于其他 2 个 SQL 表中的一些其他值。现在我在 SQL 标量函数中有价格计算,但我不确定如何将它与我的 LINQ 结合使用。
我的目标是在一次数据库往返中检索所有数据,并能够对这个计算出的价格列进行排序。
现在我有类似的东西:
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