【问题标题】:InvalidCastException: Specified cast is not valid. lambda_methodInvalidCastException:指定的强制转换无效。 lambda_method
【发布时间】:2018-05-15 11:07:32
【问题描述】:

我的项目运行良好,但现在它给了我这个错误。

控制器是HomeController

public IActionResult Index(int page=1)
{
    IPagedList<ProductTbl> productList = _context.ProductTbl.OrderByDescending(e => e.Id).ToPagedList<ProductTbl>(25, page); //using pagination
    return View(productList);
}

同样,我在以下代码中遇到了同样的错误。

 List<ProductTbl> products = _context.ProductTbl.ToList();

但是,我没有在以下代码行中收到错误。

List<CityTbl> cities = _context.CityTbl.ToList();

这两行代码在同一个控制器动作方法中。

那是我的 DbContext

public class MyDbContext : DbContext  
{
    public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
    {

    }
    public DbSet<ProductTbl> ProductTbl { get; set; }
    public DbSet<CityTbl> CityTbl { get; set; }
}

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc


    【解决方案1】:

    尝试使用_context.ProductTbl.OrderByDescending(e =&gt; e.Id).ToPagedList(25, page);

    我也可能是错的,但看起来你的 pagedList 转换参数错误,它应该看起来像 .ToPagedList(pageIndex, pageSize); 所以在你的情况下它应该是 .ToPagedList(page, 25);

    另外,我建议您阅读有关您在InvalidCastException 遇到的错误的文档

    【讨论】:

    • 我发现这很有帮助。我有互联网故障。兄弟,正如我在上面解释的那样,为什么 tolist() 适用于像 CityTbl 这样的数据集,但不适用于 ProductTbl
    • 您有任何错误吗?我不确定您的问题,您是说ToList() 在您尝试使用时没有出现吗?
    • 不,ToList() 在我与CityTbl 数据集一起使用时工作,但当我与ProductTbl 一起使用时给出和“InvalidCasteExcetption”。是的,它正在发生。我添加了新的迁移并更新了我的数据库,但又发生了这种情况。我添加了一个屏幕截图以便更详细地说明。
    • 您的产品表在您的上下文中是什么样的?
    • 我听不懂
    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2018-05-27
    • 2014-07-30
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多