2011-12-22 2 views
2

LINQ-to-Entities를 사용 중이며 Northwind 데이터베이스를로드했습니다 (LazyLoading = true).GridView가 First() 쿼리 확장을 사용한 결과를 표시하지 않습니다.

var db = new NorthwindEntities(); 
var result = db.Orders.Where(x => x.CustomerID == "ANATR").First();   
DataGridView1.DataSource = result; 

위의 코드는 DataGridView에있는 모든 항목 (이 특별한 경우를) 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? (필자는 제거 할 경우 '먼저()'가 잘 작동하고 나에게 몇 가지 항목을 제공)

+0

Are CustomerID == "ANATR"이 있습니까? –

+1

'.Take (1)'을 쓰면 작동하나요? 'result'가 어떤 타입인지 차이가 ​​나는지 궁금합니다. – Chris

+0

네, 'First'를 제거하면 결과가 나옵니다. – ColdFusion

답변

0

당신의 결과는 실제로 하나의 객체가 아닌 객체의 모음입니다.

빈 목록에 결과를 추가해보십시오.

4

결과가 컬렉션이 아니기 때문에 목록에 올릴 수 없습니다. 첫 번째는 단일 객체입니다.

0

var db = new NorthwindEntities(); var result = db.Orders.Where (x => x.CustomerID == "ANATR"). 첫 번째();
DataGridView1.DataSource = result; result 이후

이이 작업을 수행하기 위해 목록에서 단일 항목을 만들려면

var results =Enumerable.Repeat(result, 1); 

사용할 수 있습니다 작동하지 않거나 또한

var results = new List<Order>() { result }; 

을 작동합니다 Collection 아니다

그런 다음 결과 대신 results에 바인딩하십시오.

관련 문제