2010-07-22 7 views
1

C#으로 SQL (SQL Server)에 LINQ를 사용하고 있습니다.중복 개체 (ID 제외)에 대한 LINQ 확인

"Car"라는 LINQ 클래스/개체가되는 "Cars"라는 테이블이 있습니다. 모두 좋아요.

각 자동차에는 CarID (기본 키 int), EngineID, ColourID와 같은 여러 필드가 있습니다.

나는 Cars 테이블에 10 개의 기존 행이 있습니다.

모든 멋진 LINQ를 사용하여 "Car"부분 클래스에서 생성 한 오버로드 된 생성자를 사용하여 C#에서 새로운 "Car"개체를 만듭니다. 그래서 예를 들면 :

Car MyCar = new Car(17, 5); 

지금이 멋지게 나에게 물론 나는 아직 데이터베이스에 커밋하지 않은 새 차 개체에 대한 참조를 제공합니다.

동일한 EngineID 및 ColourID 값을 가진 다른 차량이 없다는 것을 확인하기 위해 빠른 체크를 실행하는 가장 LINQ-savvy/latest 방법은 무엇입니까? (다른 CarID를 갖고 있어도 상관 없습니다. 다른 값 열을 비교하고 동일한 엔진/색상 조합으로 더 이상 자동차를 만들고 삽입하지 않도록하십시오.)

같은 뭔가 정말 신속하게이를 달성 할 수있는 멋진 방법이 :

return db.Cars.Equals(x => MyCar); 

답변

2

당신은 IEqualityComparer의 IEqualityComparer

var distinctcars = from Repo.cars.Distinct(new MyComparer()); 

좋은 예와 .Distinct를 사용할 수는 여기 - http://msdn.microsoft.com/en-us/library/bb338049.aspx

ProductComparer 예제를 확인하는 경우 "확인 여부를 바꾸기 만하면됩니다. ts '속성이 동일하다 "는 부분을 만들고 싶습니다.

+0

감사합니다. 프랭크, 저를 올바른 방향으로 인도하여 올바르게 작동 시켰습니다. 나는 이것을 끝내었다 : bool DuplicateSearchesFound = ThisGuysSearchesList.Contains (NewSearch, new SearchComparer()); – Aaron

+0

probs, 다행 :) –