日期:2014-05-20  浏览次数:21001 次

Linq查询中,如何根据指定实体中的属性过滤重复项?
某表X,联合主键,A、B、C。
现在想过滤掉A的重复数据,如何实现?
看了下自带的扩展方法Distinct(),就俩重载,一个无参的,一个是IEqualityComparer<TSource> comparer,不知道怎么用。

使用的是Entity Framework

------解决方案--------------------
Distinct()方法主要是用于去除数据的重复项,可以是一个实体,也可以是一个简单类型,比如string,decimal,int 等,我也用过,以下是一个简单的小例子:
 #region 套餐Distinct
/// <summary>
/// 套餐Distinct
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public IQueryable<decimal?> ReturnGroupby(int a) {
// string packagelist = string.Empty;
IQueryable<decimal?> packagelist = null;
try
{
packagelist = (from custom in context.TB_PM_PROD where custom.PRODUCT_ID == a select custom.P_ID).Distinct();


}
catch (Exception)
{

throw;
}
return packagelist;
}
#endregion