当我使用LINQ to Entities然后使用Distinct来获取独特的Guids时,我将获得所有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?
答案 0 :(得分:3)
首先,我假设在准备发布代码时,将Distinct()
应用于contactsQuery而不是Query只是一个漏洞。
如果您将ToString()
方法应用于Guids,以便查询返回IQueryable<string>
而不是IQueryable<Guid>
,那么您是否还会返回所有4个guid?
var contactsQuery = from c in msgcontext.tbl_Order select c.OrderGuid.ToString();
var distinctGuids = contactsQuery.Distinct();