2011-02-02 4 views
0

два метода:Индивидуальные колонки в Linq

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

Две таблицы базы данных:

BookExample

  • BokExampleID (первичный ключ)
  • BookID (Внешний ключ)
  • OrderDetailID (Внешний ключ)

Книга

  • BookID (первичный ключ)
  • KategoryID (Внешний ключ)
  • LanguageID (Внешний ключ)
  • Название

BookID является внешним ключом в таблице BookExample из таблицы Книга

Если orderdetailID является NULL это означает, что этот specfik bookexample доступен в магазине

Цель:
Показать две колонки, озаглавленные «Заголовок» и «Доступный запас». «Доступный запас» - это настраиваемый столбец, который не существует в базе данных. «доступный запас» должен содержать номера, например, 2 книги с заголовком .... доступно.

Задача:
Возникли проблемы, чтобы найти правильный исходный код в Linq, чтобы отобразить эти два столбца.

// Fullmetalboy

+0

Откуда берутся «свободные запасы»? Рассчитывается ли это на основе количества книг с этим заголовком в таблице? –

+0

Вы должны сделать логический расчет данных на основе таблицы BookExample, чтобы создать список с названием bok и количеством доступных книг. Название должно отображаться один раз со спецификацией доступных запасов. Надеюсь, ты понял мой ответ. Пожалуйста, скажите, нужно ли мне дополнять друг друга. –

ответ

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

Кстати, у меня все еще есть проблема с 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. «доступный запас» должен содержать номера, например, 2 книги с заголовком .... доступно. –

Смежные вопросы