2011-02-02 4 views
0

두 가지 방법 :사용자 정의 열

var books = _myIBookRepository.RetrieveAllBooks(); 
var bokexamples = _myIbokexamples Repository.RetrieveAllBookExample(); 

두 데이터베이스 테이블 :

BookExample

  • BokExampleID (기본 키)
  • bookID로서 (외래 키)
  • OrderDetailID (외래 키)

예약

  • bookID로서 (기본 키)
  • KategoryID (외래 키)
  • 의 LanguageID (외래 키)
  • 제목

bookID로서이 테이블 BookExample의 외래 키 표 예약

orderdetailID가 NULL이 상점에서 사용할 수 있음을 의미합니다.

목표 :
"제목"및 "재고 사용 가능"인 두 개의 열을 표시합니다. "사용 가능한 재고"는 데이터베이스에 존재하지 않는 사용자 정의 된 열입니다. "available available"는 숫자를 포함해야합니다. 제목 2 권의 도서가 있습니다.

문제점 :
Linq에서 올바른 소스 코드를 찾으려면이 두 열을 표시하는 데 문제가 있습니다.

// Fullmetalboy

+0

"재고 보유"번호는 어디에서 제공됩니까? 표에있는 제목이있는 책의 수를 기반으로 계산됩니까? –

+0

bok 제목과 사용 가능한 서적이있는 목록을 만들려면 BookExample 테이블을 기반으로 데이터를 논리적으로 계산해야합니다. 제목은 사용 가능한 주식의 특정 amout와 함께 한 번 표시되어야합니다. 네가 내 대답을 이해했으면 좋겠어. 제가 어떤 보완 물을 만들어야하는지 말해주십시오. –

답변

2
var query = from b in books 
      select new 
      { 
       Title = b.Title, 
       StockAvailable = bookexamples.Count(be => 
         be.BookID == b.BookID && 
         be.OrderDetailID == null 
        ) 
      }; 

내가 바로 질문을 이해한다면,이 있어야한다 당신이 찾고있는 것.

+1

+1, 나는 이것을 훨씬 좋아하고 나의 것보다 덜 추측합니다. –

+0

이 소스 코드는 제 질문에 맞았습니다! 여러분의 성원에 감사드립니다! –

+0

그건 그렇고, 당신이 interrested 경우, 나는 여전히 http://stackoverflow.com/questions/4879940/explicit-problem-with-linq에서 후속 문제가 있습니다. –

1
당신은 당신이 원하는 형식으로 내 BookExample 클래스를 캡슐화 다른 클래스, 예를 사용할 수

:

public class BookSummary 
{ 
    public int BookID {get; set; } 
    public int BookExampleID {get; set; } 
    public bool StockAvailable {get; set; } 
    public string Title {get; set; } 
} 


var books = from b in _myIbokexamples Repository.RetrieveAllBookExample().Include("Book") // I'm assuming that's there, lol 
      select new BookSummary 
      { 
       BookID = b.BookID, 
       BookExampleID = b.BookExampleID, 
       StockAvailable = b.OrderDetailID == null, 
       Title = b.Book.Title 
      }; 
+0

안녕하세요, 사용 가능한 재고가 int를 사용해야 함을 잊어 버렸습니다. "available available"는 숫자를 포함해야합니다. 제목 2 권의 도서가 있습니다. –

관련 문제