显示和搜索ASP.NET MVC中的特定记录

时间:2018-11-28 07:31:36

标签: c# asp.net-mvc linq

我是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 :(得分:1)

假设您要查找特定用户的记录

您需要使用

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等)来过滤掉该值

答案 1 :(得分:0)

尝试一下:

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