First Name, LastName 및 DOB 속성뿐만 아니라 Id 속성 (기본 키)을 가진 Person과 같은 간단한 클래스가 제공됩니다.먼저 EF 코드로 논리적 중복을 방지 할 수 있습니까?
작성 작업을 호출 할 때 전달중인 모델이 FirstName, LastName 및 DOB 속성이 이미 존재하는 레코드와 일치하는지 확인하기 위해 유효성 검사를 수행하려고합니다. 이 경우에는 앱에 들어오는 모델에 아직 모델이 없기 때문에 Id 속성을 제외하고 싶습니다. 잘못된 값을 생성합니다.
현재 난 그냥 ...과 같이 확실하게 작동하지만 우아하지, 음, 전적으로if (!context.People.Any(x => x.FirstName == model.FirstName && x.LastName ==
model.LastName && x.DOB == model.DOB))
을 모든 확장 방법을 사용하고 있습니다.
분명히 더 좋은 방법이 있습니까?
DB에 고유 한 제약 조건이있는 항목을 피하고 코드에서 적절한 오류 처리를 피할 수 있습니다. 값이 유지되기 전에 중복을 검사하고 싶다면,'Any()'는 완전히 우아하지는 않지만 완벽하다고 생각합니다. –
가능한 복제본 [Entity Framework에 개체가 있는지 확인하는 가장 좋은 방법은?] (http://stackoverflow.com/questions/1802286/best-way-to-check-if-object-exists-inentent-framework) –
이것은 중복이 아니므로 참조한 질문에 대한 대답은 내가 명시 적으로 피하고자한다고 말한 것입니다. – keithwarren7