0

結合を必要としない素敵な LINQ クエリを作成できるように、関係を作成しようとしている 2 つのテーブルがあります。

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サーバーでリレーションシップを作成しているにもかかわらず、インテリテキストが他のデータベースを取得できないようです。これを機能させるために必要な追加の手順はありますか?

4

2 に答える 2

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 に答える
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、各ウィジェット レコードを取得します。

于 2010-05-11T14:49:26.197 に答える