LINQ 根据表中的某一个某一字段,去掉重复行

时间:2022-07-22 15:13:53
各位大虾:
    public class QZ_RWL_ViewComparer : IEqualityComparer<QZ_RWL_View>
    {
        public bool Equals(QZ_RWL_View x, QZ_RWL_View y)
        {
            return (x.DJFB_DocID ==y.DJFB_DocID && x.QZDJ_DocID == y.QZDJ_DocID);
        }

        public int GetHashCode(QZ_RWL_View obj)
        {
            return obj.GetHashCode();
        }
    }

QzEntities qzData = new QzEntities();

            var QZ_RWL_ViewItem = from p in qzData.QZ_RWL_View
                          where p.Site == SessionMessage.CurrentHsxm.DocID
                          select p;

 var Waits = QZ_RWL_ViewItem.Distinct(new QZ_RWL_ViewComparer()).GroupBy(p => p.DJFB_DocID);

在用Waits 时就报LINQ to Entities 不识别方法“System.Linq.IQueryable`1[OT.Qz.Biz.QZ_RWL_View] Distinct[QZ_RWL_View](System.Linq.IQueryable`1[OT.Qz.Biz.QZ_RWL_View], System.Collections.Generic.IEqualityComparer`1[OT.Qz.Biz.QZ_RWL_View])”,因此该方法无法转换为存储表达式
望各位大虾帮着看一下是哪里出了问题

6 个解决方案

#1


 这样写应该没有问题吧!var Waits = QZ_RWL_ViewItem.Distinct().GroupBy(p => p.DJFB_DocID);

#2


谢谢了上楼了  但是这样不满足我的条件了,我要的是根据两个字段来Distinct

#3


LINQ - DISTINCT 单列和多列两种情况下的实现
http://blog.csdn.net/q107770540/archive/2010/08/03/5784646.aspx

#4


谢谢楼上的 我试试看

#5


该回复于2010-11-19 13:49:20被版主删除

#6


from p in orders).distinct(p=>p.customerID);

#1


 这样写应该没有问题吧!var Waits = QZ_RWL_ViewItem.Distinct().GroupBy(p => p.DJFB_DocID);

#2


谢谢了上楼了  但是这样不满足我的条件了,我要的是根据两个字段来Distinct

#3


LINQ - DISTINCT 单列和多列两种情况下的实现
http://blog.csdn.net/q107770540/archive/2010/08/03/5784646.aspx

#4


谢谢楼上的 我试试看

#5


该回复于2010-11-19 13:49:20被版主删除

#6


from p in orders).distinct(p=>p.customerID);