2012-03-13 2 views
4

최근에 Entity Framework의 구문을 다음과 같이 보았습니다. where 문에 주목하십시오 -Entity Framework (QueryBuilder) - where 절 "it"prefix

.Where("it.LastName = @ln AND it.FirstName = @fn") 

it.의 기능은 무엇입니까? 그리고 Contacts.LastName 대신 it이 필요한 이유는 무엇입니까? 자세한 정보가 도움이 될 것입니다. 미리 감사드립니다.

string firstName = @"Frances"; 
string lastName = @"Adams"; 

using (AdventureWorksEntities context = 
    new AdventureWorksEntities()) 
{ 
    // Get the contacts with the specified name. 
    ObjectQuery<Contact> contactQuery = context.Contacts 
     .Where("it.LastName = @ln AND it.FirstName = @fn", 
     new ObjectParameter("ln", lastName), 
     new ObjectParameter("fn", firstName)); 

    // Iterate through the collection of Contact items. 
    foreach (Contact result in contactQuery) 
     Console.WriteLine("Last Name: {0}; First Name: {1}", 
     result.LastName, result.FirstName); 
} 
+0

'내'절에 접두어를 붙일 필요가 없었습니다 .... – c0deNinja

+0

EF 버전은 무엇입니까? – c0deNinja

+0

EF 4 - 여기 msdn article - http://msdn.microsoft.com/en-us/library/bb896238.aspx – bugBurger

답변

5

this article을 기준으로 "it"은 ObjectQuery를 매개 변수를 참조하는 기본 이름으로 참조합니다. 하여 ObjectQuery의 Name 속성을 사용하여 실제로 변경할 수 있도록한다는 점에서 당신이 당신이 할 무엇을 원하는 이름으로 참조 할 수있는 조항 : 정확히 위에 표시된 것처럼 아마

ObjectQuery<Contact> contactQuery; 
contactQuery.Name = "contact"; 
contactQuery = context.Contacts 
    .Where("contact.LastName = @ln AND contact.FirstName = @fn", 
    new ObjectParameter("ln", lastName), 
    new ObjectParameter("fn", firstName)); 

하지만, 일반적인 아이디어를 제공합니다.

+0

좋은 설명과 참고 자료를 보내 주셔서 감사합니다. – bugBurger

+0

내가이 질문을 보았을 때, 나는 이전에 그것을 보았다는 것을 알았지 만 그것이 무엇을 의미하는지 전혀 알지 못했다. 당신의 질문은 제게 그것을 더 잘 이해할 수있는 이유를주었습니다. – ShelbyZ