去重 就是除去重复的数据。
1:重复的依据是什么?
2:去重之后要的结果是什么?
去重的依据 有时候 是一列 两列
要的结果是一列 也可能是个model
个人总结的情况
1:一般情况下去重是根据id这一列来的 要的结果也是这一列
var result=table.select(t=>t.id).distinct().tolist();
2: 去重依据是 两列 id order 要的结果也是这两列
var result=table.select(t=>new{t.id,t.order}).distinct().tolist();
3:去重依据是俩列 要的结果是model 之后还要去分页或者各种条件
这种情况就没办法像前两种这样的得不到想要model,所以需要自定义去重
public class DistnictTourId自定义名字 : IEqualityComparer<去重类model>
{
public bool Equals(去重类 x, 去重类 y)
{
if (x == null || y == null) return false;
if (x.TourOrderId == y.TourOrderId&&x.order== y.order) return true; else return false;
}
public int GetHashCode(去重类 obj)
{
if (obj == null) return 0;
else return obj.TourOrderId.GetHashCode()^ obj.CityId.GetHashCode();
}
}
自定义去重 就是自己说明要根据哪几列去重
以上列子是 TourOrderId和order 下面的那个^ 其实含义就是并且的意义
自定义完了之后使用也很方便
var test=db.去重类listmodel.distinct(new 自定义名字()).orderby..等等一系列操作