在Linq-to-Entities中动态构造select字段



在我的简单数据库优先实体框架场景中,我有一些客户分配了价目表编号。另一方面,存在具有与价目表相对应的7个价格列的产品表,例如PR_1、PR_2、PR_3等。

我想对一些属性做一个投影。问题是,其中一个属性/字段取决于客户的价目表编号,因此需要动态构建。因此,如果价目表编号为2,则要使用的属性为PR_2,依此类推

public IList<Product> GetSalesList(int customerId)
{
    Customer customer = this.customerService.Get(customerId);
    var products = this.productRepository.GetAll().OrderBy(p => p.ProductCode)
            .Select(p => new Product
            {
                Id = p.Id,
                ProductCode = p.ProductCode,
                Description = p.Description,
                PricingTypeCode = p.PricingTypeCode,
                Quantity = 0,
                SalesPrice = <<PR_ + customer.PricelistNumber.ToString()>> 
             }).ToList();
    return products;
}

我读过关于DLINQ的文章,但我不想使用它,因为我认为这只是一个例外。

有人能为我指明正确的方向吗?或者有人能解决这个问题吗?

我会将所有价格存储在Product中,然后使SalesPrice成为一种根据客户价目表编号计算销售价格的方法。

类似于:

public decimal SalesPrice(Customer customer)
{
    return prices[customer.PriceListNumber - 1];
}

相关内容

  • 没有找到相关文章

最新更新