【问题标题】:LINQ to Entities query and Distinct on GUIDLINQ to Entities 查询和区分 GUID
【发布时间】:2013-04-19 10:00:37
【问题描述】:

当我使用 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?

【问题讨论】:

    标签: c# .net linq linq-to-entities


    【解决方案1】:

    首先,我假设在准备发布代码时将Distinct() 应用于contactsQuery 而不是Query 只是一个失误。

    如果您将 ToString() 方法应用于 Guid,以便查询返回 IQueryable<string> 而不是 IQueryable<Guid>,您是否仍会返回所有 4 个 guid?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多