El establecimiento de relaciones para SQL LINQ consultas
-
26-09-2019 - |
Pregunta
Tengo dos tablas que estoy tratando de crear una relación entre lo que puedo escribir consultas LINQ agradables que no requieren unirse.
Widgets
WidgetId
WidgetDescription
Orders
OrderId
WidgetId
OrderDate
Lo que yo quiero ser capaz de hacer es crear una consulta LINQ que hace algo similar a:
var result = from x in db.Widgets
Where x.Orders.OrderDate == "5/11/2010"
select x;
Me parece que no puede conseguir Intellitext para recoger la otra base de datos a pesar de crear una relación en el servidor SQL. ¿Hay pasos adicionales que debe tomar para hacer este trabajo?
Solución
No creo que se podría hacer sin que ninguna de OrderDate
añadiendo a widgets en su base de datos y se ejecuta una consulta de combinación antes de consultar a él.
Me haría algo como esto.
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;
De esta manera se obtiene un OrderDate
para cada registro de widgets.
Otros consejos
¿Qué 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;