방금 프로젝트에서 코드 계약을 사용하기 시작했습니다. 그러나 Entity Framework를 사용하여 데이터베이스를 쿼리하는 리포지토리 구현에 문제가 있습니다..NET 4 코드 계약 : "requires unproven : source! = null"
public IEnumerable<Organization> GetAllOrganizations()
{
return _uow.CreateSet<Party>().OfType<Organization>().AsEnumerable();
}
방법은 데이터베이스에있는 모든 조직을 포함하는 모음 또는 데이터베이스의 조직이 아니라 빈 컬렉션을 반환 :
나는 다음과 같은 방법이있다.
그러나, 이것은 나에게 오류를 제공 CodeContracts에 따라 좋아하지 않습니다 : "검증되지 않은이 필요합니다 = null의 소스를"
것은 무엇을 말해하려고? Contract.Assume을 사용하여 코드 계약을 만족시킬 수 있습니다. 항상 뭔가를 찾을 것이라고 추측하지만 데이터베이스에서 데이터를 읽는 모든 메서드에서이를 수행해야합니다.
여기에 뭔가가 누락되었거나 데이터베이스와 LINQ로 작업 할 때 의도 된 동작입니까?
"소스"란 무엇입니까? 전화를 거는 방법 중에 계약이 있습니까? –
[this] (http://stackoverflow.com/questions/3050279/how-to-avoid-source-null-when-using-code-contracts-and-linq-to-sql) 도움이 필요합니까? – adrianbanks
@Anon : "출처"가 무엇인지 전혀 알지 못합니다. Entity Framework에서 메서드에 대한 계약이 있는지는 잘 모르겠지만 그렇게 생각하지는 않습니다. @adrianbanks : 아, 미안하지만 어떻게 도움이되는지 모르겠다. – Vern