0

Linqについて学び始めたばかりです。いくつか例を書きましたが、解決できなかったのではないかと疑っています。

私はデータベースを使用しています。すべてのモデリングを行うためにNorthwind呼び出されたツールを使用しました。SqlMetal

今、私は次のクエリを書きました:

var q = from c in db.Customers
        from o in c.Orders
        where c.City == "London"
        select new { c, o };

このクエリにより、指定された条件( )のCustomersおよびテーブルのすべての列を含むデータセットが生成されることを知っています。しかし、私の質問は次のとおりです。Ordersc.City == "London"

そのクエリを実行した後、列の値FROM THE VARIABLEを取得するにはどうすればよいですか?Customers.CustomerIDOrders.OrderIDq

これはばかげた質問かもしれませんが、事前のおかげで、私はこれに数時間苦労しています。

4

2 に答える 2

3
var theSoleItem = q.First();
theSoleItem.CustomerID
theSoleItem.OrderID

また、それが気になる唯一の列である場合、最初のクエリは次のように高速になります。

select new {c.CustomerID, o.OrderID}

移動しながら名前を変更することもできます。

select new {CustID = c.CustomerID, OrdID = o.OrderID}

プロパティを直接参照するのではなく、メソッド呼び出しを参照する場合は、後者が唯一のオプションです。

于 2012-09-03T21:02:53.863 に答える
1

変数qは、CustomerとOrderの2つのオブジェクトを含む匿名オブジェクトのシーケンスになりました。あなたはそれを簡単に繰り返すことができます:

foreach(var item in q)
{
    Console.WriteLine("CustomerID = " + item.CustomerID + " order ID = " + item.OrderID);
}
于 2012-09-03T21:07:24.937 に答える