2016-11-30 1 views
2

"mongodb : // localhost : 27017"에서 실행중인 MongoDB의 데이터를 .NET 어플리케이션에 표시하려고합니다.MongoDB for .Net 간단한 디스플레이 데이터 예제

데이터베이스가으로 보이는 방식입니다.

enter image description here

이 예는 MongoDB C# Driver page on github에서 내가 심지어 컴파일 시간 오류를 통과하지 수
1. 내가 await을 제거했다.
2. 'System.Threading.Tasks.Task>'하지 않기 때문에 foreach 문이 '> System.Threading.Tasks.Task'유형의 변수에 작동 할 수 없습니다

list에서 지금 점점 오전 오류입니다 'GetEnumerator를'에 대한 공개 정의를 포함

using MongoDB.Bson; 
using MongoDB.Driver; 
using System; 

namespace MongoTest2 
{ 
    class Program 
    { 
     public class Person 
     { 
      public ObjectId Id { get; set; } 
      public string Name { get; set; } 
     } 

     static void Main(string[] args) 
     { 
      var client = new MongoClient("mongodb://localhost:27017"); 
      var database = client.GetDatabase("test"); 
      var collection = database.GetCollection<Person>("messages"); 

      collection.InsertOneAsync(new Person { Name = "Jack" }); 

      var list = collection.Find(x => x.Name == "Jack") 
       .ToListAsync(); 

      foreach (var person in list) 
      { 
       Console.WriteLine(person.Name); 
      } 
     } 
    } 
} 

사람이 간단한 작업 코드, 또는 작업 자습서에 대한 링크를 공유 할 수 있을까요? 이것은 두 번째 날이며 나는 여전히이 문제에 붙어 있습니다. InsertOne()ToList() 또는 asynchrone 방법의 결과를 기다립니다 :

답변

3

당신은 synchrone 메소드를 호출해야 하나

collection.InsertOneAsync(new Person { Name = "Jack" }).Wait(); 

var list = collection.Find(x => x.Name == "Jack") 
      .ToListAsync().Result; 
+0

예 그 작업 솔루션입니다. 이제 시작 했어! 고맙습니다! –

+0

이것은 콘솔 응용 프로그램에서 작동하지만 Winforms 응용 프로그램에서는 오류가 발생하지 않으며 아무 것도 표시되지 않습니다. 나는 이것을 시도했다 :'foreach (목록에있는 Person p) MessageBox.Show (p.Name);'왜 이런 일이 일어 났는지 알고 있니? –

+0

메시지 상자가 보이지 않거나 emty 메시지 상자가 보입니까? –