GetObjectKey는 기존의 인스턴스화 된 개체를 검색하고 데이터 저장소를 검색하는 이점이 있습니다. 당신은 강한 타이핑의 일부를 잃게하고 결과 개체를 캐스팅 할 필요가 같이 그러나, 그것은 또한 같다 :LINQ 쿼리 또는 GetObjectKey를 사용하여 단일 Entity Framework 엔터티를 검색 하시겠습니까?
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
개인적으로
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
LINQ 대
GetObjectKey을, 나는 후자를 선호 방법 때문에, 타이핑. 또한, 귀하의 DAL은 모든 Get 메서드가 쿼리 인 상당히 균일합니다 (개인적인 선호도 일지라도).
남녀 학생들은 무엇을 사용합니까?
이전 방법에서는 캐스트 대신 "as"키워드를 사용했습니다. 그 결과, 결과가 null의 경우는 예외를 throw하지 않습니다. as 키워드는 값을 캐스팅하려고 시도하지만 올바른 유형이 아닌 경우 대신 null을 제공합니다. 그래서 당신은 context.GetObjectByKey (key) Customer를 가질 것입니다. –
좋은 지적. 예제를 점수조차 조금만 수정하겠습니다. –