Отображение и поиск конкретной записи в ASP.NET MVC - PullRequest
0 голосов
/ 28 ноября 2018

Я новичок в ASP.NET MVC.И я просто хотел спросить о том, как создать функцию поиска, которая будет искать только конкретные записи logged у текущих пользователей, а не все записи из базы данных.

Я попробовал этот код в своем индексе, и я 'я получаю сообщение об ошибке.

IEnumerable<Book> myBooks = db.Books.Where(x => 
x.BookTitle.Contains(searching) ||
searching == null).Where(x => x.User == currentUser).ToList();

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

попробуйте это:

List<Book> myBooks = db.Books.Where(x => 
    (x.BookTitle.Contains(searching) || x.BookTitle == null) && x.User == currentUser).ToList();
0 голосов
/ 28 ноября 2018

Предполагая, что вы ищете записи для конкретного пользователя

вам нужно использовать

IEnumerable<Book> myBooks = db.Books.Where(x => 
x.BookTitle.Contains(searching) ||
searching == null).Where(x => x.User.UserId == currentUser.UserId).ToList();

Примечание в C #, типы значений (int, long и т. Д.), Когдаиспользуемые с оператором == сравниваются по значению, ссылки сравниваются по местоположению ссылки, это означает, что пользователь, на которого вы ссылаетесь, должен быть той же ссылкой, что и текущий пользователь.

При использовании object.Equalsметоды, он пытается сравнить содержимое типа класса (в вашем случае, объект User), например,

User.Id == o.UserId && UserId.Name == UserId.Name,и т. д.

Поэтому используйте тип оценки, например, int, и т. д., которые являются уникальными для фильтрации этого вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...