2013-06-20 2 views
2
을 설정할 수있는 경우

이봐, 내가 가진 많은 회사를 위해 아무것도 돌려주지 않는,이 내가 돌아 4의 값을 설정할이었다 할 수있다 즉Linq에 체크 값을, 그렇지 않으면 디폴트 값

public int GetDefaultCurrencyForOrganization(string organizationId) 
    { 
     return (from a in _dataContext.allocations 
       where a.organizationId.Equals(organizationId) 
       select a.currencyId).SingleOrDefault(); 
    } 

다음 쿼리. 위의 내용을 어떻게 추가 할 수 있을지 궁금하십니까?

public int GetDefaultCurrencyForOrganization(string organizationId) 
{ 
    return (from a in _dataContext.allocations 
      where a.organizationId.Equals(organizationId) 
      select (int?)a.currencyId).SingleOrDefault() ?? 4; 
} 

또한이 작업을 수행 할 수 있습니다 :

+0

그러면 쿼리가 아무것도 반환하지 않으면'4'를 반환하겠습니까? – Rob

답변

2

난 당신이 뭔가를 찾고 생각

public int GetDefaultCurrencyForOrganization(string organizationId) 
{ 
    var alloc = _dataContext.allocations 
     .SingleOrDefault(a => a.organizationId.Equals(organizationId)); 
    return alloc != null ? alloc.currencyId : 4; 
} 
2

DefaultIfEmpty (4) 대신 SingleOrDefault의 값 :

을 지정하십시오
public int GetDefaultCurrencyForOrganization(string organizationId) 
{ 
    return (from a in _dataContext.allocations 
      where a.organizationId.Equals(organizationId) 
      select a.currencyId).DefaultIfEmpty(4).Single(); 
} 

http://msdn.microsoft.com/en-us/library/bb355419.aspx

+0

이것을 사용할 때 오류가 발생했습니다. 비어있는 경우 쿼리 연산자 기본값으로 사용되는 지원되지 않는 오버로드 – StevieB

+0

First() 대신 First()를 사용해 볼 수 있습니까? –

+0

'currencyId'의 종류는 무엇입니까? 'organizationId'와 같은 문자열이라면 정수 4 정수 대신 문자열 리터럴 "4"를 원할 것입니다. – devgeezer

관련 문제