2

LINQ to Entities を使用してから Distinct を使用して一意の Guid を取得すると、すべての GUID が取得されます。

DB-Entry 1: {b3f86f18-f661-4511-a8b5-f85aa8e41b29}
DB-Entry 2: {b3f86f18-f661-4511-a8b5-f85aa8e41b29}
DB-Entry 3: {7078d941-0906-4a1b-9a27-85cfc9cf382b}
DB-Entry 4: {7387d57e-6ac5-4b3b-b7f5-833383530bb6}
using (OrderTableEntities msgcontext = new OrderTableEntities())
{
    try
    {
        var Query = from c in msgcontext.tbl_Order
                    select c.OrderGuid;

        var distinctGuids = Query.Distinct();
    }
    catch 
    {
    }
}

このコード部分の実行後、4 行すべてが照会されます。基本的に、私は 3 つのエントリだけが返されると予想していました。DISTINCT GUID を取得できないというこの問題の原因は何ですか?

4

1 に答える 1

3

まず、Distinct()Query ではなく、contactsQuery に適用するのは、投稿用のコードを準備するときの単なる手違いだと思います。

クエリがではなく をToString()返すようにメソッドを Guid に適用した場合でも、4 つの GUID がすべて返されますか?IQueryable<string>IQueryable<Guid>

var contactsQuery = from c in msgcontext.tbl_Order select c.OrderGuid.ToString();

  var distinctGuids = contactsQuery.Distinct();
于 2013-04-19T10:02:25.083 に答える