Posso especificar um conjunto de parâmetros de base para um DataContext Linq para sql?

StackOverflow https://stackoverflow.com/questions/278281

  •  07-07-2019
  •  | 
  •  

Pergunta

Eu tenho um LINQ to SQL DataContext que representa uma relação pai-filho de produtos a preços. Estou interagindo através de uma lista de produtos e recuperar os preços para cada um. O problema é que as mesas atrás ambos os produtos e preços conter uma lista de produtos ou preços para múltiplos ambientes, determinada por uma chave complexa 3 campo. Eu quero recuperar os produtos e preços para apenas um desses ambientes.

Eu posso fazer isso ser especificando uma cláusula WHERE longa em cada consulta LINQ que consiste na chave do produto ea chave ambiente complexo, algo como isto:

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

O que eu gostaria de ser capaz de fazer é especificar o cliente, SALESORG e DistributionChannel globalmente para o DataContext para que todos necessidade I para especificar na consulta em si é o ID do produto (MaterialNumber). Dessa forma, quando eu começar consultando nosso ambiente de produção uma simples mudança para o DataContext vai mudar o ambiente que eu estou consultando.

Isso é possível? Ou uma breve amostra de código ou ponteiros para a teoria de fundo seria maravilhoso!

Foi útil?

Solução

Você poderia ter um Expression<T> pré-escrita que você tem então esses valores nele:

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

Como alternativa, você pode colocar as propriedades em seu DataContext (lembre-se, é um parcial class por isso é fácil de estender) que você definir e depois são lidos pelo seu expressão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top