Linq to Dataset, 여러 열에 의해 구별됩니다
-
22-08-2019 - |
문제
여러 열에 의해 구별되는 방법이 있는지 확인하고 싶었습니다. 미리 감사드립니다 !!!
BTW, 나는 훌륭한 LINQ 확장을 발견했다 여기 그러나 여러 열에 사용하려면 약간의 지침이 필요합니다.
해결책
글쎄, 당신은 먼저 프로젝션을 할 수 있습니다 :
var qry = db.Customers.Select(cust => new {cust.ID, cust.Name, cust.Region})
.Distinct();
또는 쿼리 구문 :
var qry = (from cust in db.Customers
select new {cust.ID, cust.Name, cust.Region}).Distinct();
그게?
다른 팁
뚜렷한 대신 GroupBy를 사용한 다음 각 그룹의 가장 많은 레코드를 선택할 수 있습니다.
objentity에서 o에서 돌아갑니다
group o by new { o.Field1, o.Field2, o.Field3, o.Field4, o.Field5 } into grp select grp.FirstOrDefault();
이것은 당신에게 줄 것입니다 EntityObject 대신 익명 유형
"여러 열에 의해 구별"에 의해 당신이 실제로 의미하는 것은 그룹입니다.
뚜렷한 것을 요구할 때, 그것은 당신이 테이블의 모든 열을 사용하여 모든 뚜렷한 행 또는 그룹을 얻는다는 것을 의미합니다.
열의 하위 집합에 대해 별개의 그룹 만 얻으려면 절에서 그룹을 사용하여 그룹을 그룹화 할 열을 지정하십시오. 그런 다음 각 그룹에 대해 하나의 키 세트 만 원하므로 그룹을 선택하십시오.
또 다른 쉬운 옵션은 하나의 별개의 문자열을 만드는 것입니다.
var result = collection.DistinctBy(c => c.Field1 + "." + c.Field2 + "." + c.Field3);
var qry = (db.customers에서 customers에서 new {cust.id, cust.name, cust.region}). groupby (x => new {x.name, x.region}). select (z => z .OrderBy (i => i.cust) .firstordEfault ()). tolist ();
제휴하지 않습니다 StackOverflow