从 .Net Core 2 升级到 .Net 6 后出现编译器错误

Compiler Error after upgrading from .Net Core 2 to .Net 6

我从 .Net Core 2 升级到 .Net 6。它导致的错误之一是:

Error CS1106 Extension method must be defined in a non-generic static class

它发生在 public class BookController 线上。

所以我在 Microsoft 网站上做了一些研究,然后从 LateFee 方法中删除了 static 关键字。

但这并不能解决错误。

还有什么需要我做的吗?

这是我的 class:

public class BookController
    : LibraryController<BookClub, Books>
{

    public BookController(BookConfig<BookClub> ctx) 
        : base(ctx)
    {
    }

    private static bool LateFee(BookClub original, Books b)
    {
        return original.Date?.Id != b.CheckoutDate.TrimToNull();
    }
}

这是父级 class:

public class LibraryController()

    [HttpPost("byLocation/{id}")]
    public IActionResult PostBookRequest(this Int32 id)
    {
        using (var tran = Session.BeginTransaction()) {
            foreach (var book in LibraryService.CreateHold(id)) {
                Session.Save(book);
            }
            tran.Commit();
            return NoContent();
        }
    }

谢谢!

public IActionResult PostBookRequest(this Int32 id)

从该行中删除 this,这是 .Net Core 2 中的语法错误,在 .Net6 中仍然是语法错误。