当我使用 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?
最佳答案
首先,我假设申请 Distinct()
使用 contactQuery 而不是 Query 只是准备发布代码时的一个失误。
如果您应用 ToString()
方法到 Guid,以便查询返回 IQueryable<string>
而不是IQueryable<Guid>
,你还能得到所有 4 个指南吗?
var contactsQuery = from c in msgcontext.tbl_Order select c.OrderGuid.ToString();
var distinctGuids = contactsQuery.Distinct();
关于c# - LINQ to Entities 查询和 GUID 区分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16102047/