为LINQ查询设置SQL关系

时间:2010-05-11 14:32:33

标签: sql linq relationships

我有两个表,我正在尝试创建一个关系,所以我可以编写不需要连接的漂亮的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来获取其他数据库。我需要采取哪些额外步骤来实现这项工作吗?

2 个答案:

答案 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;