2017-11-05 2 views
1

같은 프로젝트 :MongoDB를/C 번호 사전이 객체에

class A 
{ 
    string S; 
    int V; 
} 

나는이 같은 투사을 위해 노력하고 있어요 (이 컴파일되지 않습니다)

Expression(_ => new KeyValuePair<string, int>() { _.S, _.V }) 

목표는 얻을 수있는 사전을 출력으로.

이 방법이 있습니까?

(_ =>.S) .Include ( =>.V) .Exclude ( => _._ ID)하지만, 내가 클래스에 그 캐스팅 수있는 반면, 등을 ​​포함처럼 내가 뭔가를 할 수 , 나는 이것을 사전으로 만들 방법이 없다. 나는 그것을 목록으로 만들 수 있지만, S를 키에, V를 값에 할당하는 방법을 모른다.

답변

1

사전으로 프로젝트 할 필요가 없습니다. 이렇게 할 수 있습니까?

var listA = await GetCollection().As<A>().ToListAsync(); 
var dictA = listA.ToDictionary(_=>_S, _=>_.V); 

당신은 일 쿼리

.Project(Builders<Entity>.Projection.Exclude("_id")) 
+0

이를 포함하여 DB 측의 돌출부를 제어 할 수 있습니다! 감사! – Thomas