我有两个表,我正在尝试创建一个关系,所以我可以编写不需要连接的漂亮的LINQ查询。
Widgets
WidgetId
WidgetDescription
Orders
OrderId
WidgetId
OrderDate
我希望能够做的是创建一个类似于:
的LINQ查询var result = from x in db.Widgets
Where x.Orders.OrderDate == "5/11/2010"
select x;
尽管在SQL Server中创建了一个关系,但我似乎无法获得intellitext来获取其他数据库。我需要采取哪些额外步骤来实现这项工作吗?
答案 0 :(得分:0)
如果没有将OrderDate
添加到数据库中的Widgets,或者在查询之前运行连接查询,我认为无法完成。
我会做这样的事情。
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;
这样您就可以为每个Widget记录获得OrderDate
。
答案 1 :(得分:0)
如下:
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;