문제

여러 열에 의해 구별되는 방법이 있는지 확인하고 싶었습니다. 미리 감사드립니다 !!!

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 ();

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top