2016-07-22 3 views
0

EF 코드 우선 및 MSSQL 사용자 정의 함수에서 흥미로운 문제가 있습니다. 스칼라 값을 반환하는 데이터베이스 함수를 작성하고이 함수를 내 DbContext에 매핑하려고합니다.Entity Framework 코드 첫 번째 기능

[DbFunction("AppDbContext", "GetNextDocumentNumber")] 
public virtual int GetNextDocumentNumber() 
{ 
    return ((IObjectContextAdapter)this) 
     .ObjectContext 
     .ExecuteStoreCommand("GetNextDocumentNumber"); 
} 

가 나는 또한 함수가 올바른 값을 반환 여부를 확인하는 간단한 단위 테스트를 작성 :

정보를 바탕으로 내가 발견 한 나는 이것을 썼다. 문제는 위의 코드가 -1을 반환한다는 것입니다. SMSS에서 함수를 실행할 때 올바른 결과를 얻습니다.

다른 사이트에서 검색 후 나는이 같은 솔루션 thatlooks을 발견했다 :이 경우

public virtual int GetNextDocumentNumber() 
{ 
    return this.Database 
     .SqlQuery<int>("select dbo.GetNextDocumentNumber()") 
     .Single(); 
} 

내가 정확한 값을 얻을.

이전 코드에 무엇이 잘못되었거나 내가 뭘 잘못하고 있는지 알고 싶습니다. 두 경우 모두 나는 가치를 얻는다. 그러나 한 가지 경우에만 값이 정확합니다.

답변

0

This은 필요한 것에 대한 답변을 제공 할 수 있습니다.

+0

감사합니다. LINQ 표현식에서 함수를 호출하면 문제가 해결됩니다. – TomAsh

관련 문제