0

我有两个表,我试图在它们之间创建关系,这样我就可以编写不需要连接的漂亮 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 中创建了关系,但我似乎无法让智能文本获取其他数据库。我需要采取任何其他步骤来完成这项工作吗?

4

2 回答 2

0

我认为如果不添加OrderDate到数据库中的小部件或在查询之前运行连接查询就无法完成。

我会做这样的事情。

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;

这样,您就可OrderDate以为每个 Widget 记录获得一个。

于 2010-05-11T14:49:26.197 回答
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;
于 2010-05-11T15:52:12.217 回答