Как получить доступ к контенту из базы данных, "не используя первичный ключ" - PullRequest
1 голос
/ 04 августа 2020

ASP NET CORE - Использование EF Core

Таблица:

  1. UserBooksId - первичный ключ
  2. UserId - userId из другой таблицы
  3. BookId - bookId из другой таблицы
  4. BookToBuy - где я храню свой контент
  5. NrBooksOrdered - количество заказанных книг

Поэтому я не знаю, как получить доступ к содержимому этой таблицы с помощью UserId -> BookToBuy и NrBooksOrdered или даже всех первичных ключей, имеющих этот userId.

Primary Key уникальность, мне не очень помогает, потому что в базе данных UserId может быть в базе несколько раз, как и bookid.

Пример:

  1. UserBookId: 0 | UserId: 1 | BookId: 2 | BookToBuy: Wizzard | NrBooksOrdered: 2
  2. UserBookId: 1 | UserId: 1 | BookId: 2 | BookToBuy: Wizzard | NrBooksOrdered: 6
  3. UserBookId: 2 | UserId: 1 | BookId: 3 | BookToBuy: LongRoad | NrBooksOrdered: 1

Как видите, UserId не меняется.

Спасибо.

1 Ответ

1 голос
/ 04 августа 2020

Здесь вы можете использовать запросы basi c linq

/* b is a reference here to every book, so you can filter it by the bool-expression */
var booksQuery = dbcontext.BooksTable.Where(b => b.UserId == 1 && b.BookId == 2);

/* books will be type of IQueryable so it isnt retrieved from the database */
/* yet. To do so, you can use `.ToList()` or `.AsEnumerable()` (wich is    */
/* faster in use-cases, where you need to iterate the result once)         */
var booksFromDb = booksQuery.AsEnumerable();

Для получения подробного описания того, как запрашивать данные с помощью EF-Core, вы всегда можете обратиться к: Данные запроса MS-Docs

...