Pergunta

Eu tenho duas tabelas que estou tentando criar um relacionamento entre, para que eu possa escrever boas consultas LINQ que não precisam de ingressar.

Widgets
WidgetId
WidgetDescription

Orders
OrderId
WidgetId
OrderDate

O que eu quero poder fazer é criar uma consulta LINQ que faça algo semelhante a:

var result = from x in db.Widgets
Where x.Orders.OrderDate == "5/11/2010"
select x;

Não consigo obter o Intellitext para pegar o outro banco de dados, apesar de criar um relacionamento no SQL Server. Existem medidas adicionais que preciso tomar para fazer isso funcionar?

Foi útil?

Solução

Eu não acho que isso poderia ser feito sem adicionar nenhum OrderDate para widgets no seu banco de dados ou executando uma consulta de junção antes de consultar.

Eu faria algo assim.

var firstQuery = (for w in Widgets
                  join o in Orders
                  on w.WidgetId equals o.WidgetID
                  select new {Widgets = w, OrderDate = o.OrderDate}).Distinct();

var secondQuery = for record in firstQuery
                  where record.OrderDate == "5/11/2010"
                  select record.Widgets;

Dessa forma, você consegue um OrderDate Para cada registro do widget.

Outras dicas

Que tal algo como:

var result = from widgetId in 
                (from order in orderContext.Orders
                    where order.OrderDate == new DateTime(2010, 5, 11)
                    select order.WidgetId)
            from widget in widgetContext.Widgets
            where widget.WidgetId = widgetId
            select widget;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top