-1

我有一个 LINQ-to-SQL 数据上下文,它表示产品与价格的父子关系。我正在遍历产品列表并检索每个产品的价格。问题是产品和价格后面的表都包含多个环境的产品或价格列表,由 3 字段复合键确定。我只想检索其中一个环境的产品和价格。

为此,我可以在每个 LINQ 查询中指定一个长 where 子句,该子句由产品密钥和复杂环境密钥组成,如下所示:

var price = ( from condition in conditiontype where condition.MaterialNumber == material && condition.Client == "400" && condition.SalesOrg == "1000" && condition.DistributionChannel == "10" select condition.ConditionDetails[0].ConditionValue );

我希望能够为 DataContext 全局指定 Client、SalesOrg 和 DistributionChannel,这样我需要在查询本身中指定的只是产品 ID(MaterialNumber)。这样,当我开始查询我们的生产环境时,对 DataContext 的简单更改将改变我正在查询的环境。

这可能吗?一个简短的代码示例或指向背景理论的指针都会很棒!

4

1 回答 1

0

您可以预先编写Expression<T>一个,然后在其中包含这些值:

public Expression<Func<int>> GetPrices = p => // do Lambda here

或者,您可以将属性放入您设置的 DataContext 中(请记住,它是一个部分类,因此很容易扩展),然后由您的表达式读取。

于 2008-11-12T00:08:08.193 回答