Web API 2 在 GET 方法中修改 db

Web API 2 modify db in GET method

查询后想修改一些字段,但是修改字段后return值变了。

我想在修改后保留 IQueryable 值。

如何存储 IQueryable 值?

public IQueryable<Book> GetBook(int id)
    {
        IQueryable<Book> Books = null;
        IQueryable<Book> Book_return = null;

       Books = db.Book.Where(u => u.id == id && u.is_read != true);

        Book_return = Books;

        foreach (var item in Books)
        {

            item.read_time = DateTime.Now;
            item.is_read = true;
            db.Entry(item).State = EntityState.Modified;
        }

        try
        {
            db.SaveChanges();
        }
        catch (DbUpdateConcurrencyException)
        {
            throw;
        }

        return Book_return;
    }

您可以使用:

IEnumerable<Book> Book_return = null    
Book_return = Books.ToList();

并且方法的return类型必须是IEnumerable<Book>,