dbcontext.set에 select 절을 사용할 수 있습니까? db 테이블에서 People의 모든 공동 보험금을 반환하고 모든 열을 선택하는 다음 코드를 작성했습니다.dbcontext에서 엔터티 프레임 워크 선택 절
public IQueryable<Person> GetPeople()
{
return DbContext.Set<Person>();
}
나는 단지 모두 당신의 예에서 사용자 이름과 이메일
dbcontext.set에 select 절을 사용할 수 있습니까? db 테이블에서 People의 모든 공동 보험금을 반환하고 모든 열을 선택하는 다음 코드를 작성했습니다.dbcontext에서 엔터티 프레임 워크 선택 절
public IQueryable<Person> GetPeople()
{
return DbContext.Set<Person>();
}
나는 단지 모두 당신의 예에서 사용자 이름과 이메일
var projection = GetPeople().Select(p => new {p.Username, p.Email});
을 선택합니다, 제이슨의 예는, 당신은 상황 인식 개체를 전달하고 있다는 사실을 알고 있어야합니다. 데이터를 추가로 조작하면 데이터베이스에 예상치 못한 히트가 발생할 수 있습니다. 또한 DbContext.Set()과 같은 함수를 수행 할 때 EF에서 가장 느린 형식의 데이터베이스 호출을 수행합니다. 가장 빠르고 가장 효과적인 데이터베이스 호출은 다음과 같습니다.
public List<GetPersonResult> GetPeople()
{
return (from p in dbContext.People
select new GetPersonResult
{
UserName = p.Username,
EmailAddress = p.Email
}).ToList();
}
public class GetPersonResult
{
public string UserName{get;set;}
public string EmailAddress{get;set;}
}
원시 SQL은 EF 사용 중 가장 빠른 형식입니다. 거의 원시 ADO.NET만큼 빠릅니다.
'context.People'은'context.Set
:
public IQueryable<Person> GetPeople()
{
return DbContext.Set<Person>().Select(per => new {per.UserName, per.Email})
}
당신은, resaults를 필터링 예를 들어 약간의 과부하를 추가 할 :
public IQueryable<Person> GetPeople()
{
return DbContext.Set<Person>().Select(per => new {per.UserName, per.Email})
}
public IQueryable<Person> GetPeople(int cityId)
{
return DbContext.Set<Person>().Where(p => p.CityID == cityId)
.Select(per => new {per.UserName, per.Email})
}
감사 메이트. 트릭 작성 –