不能将int类型隐式转换为模型类型

时间:2014-03-08 17:32:41

标签: c# asp.net-mvc linq

我有这个查询 -

  var uploadedfile = (from u in db.CardTables
                                where u.CardID < cardtable.cardID
                                select new CardModel {
                                    cardID = cardtable.cardID,
                                    cardDate = cardtable.cardDate,
                                    cardFileName = cardtable.cardFileName,
                                    cardFilePath = cardtable.cardFilePath,
                                    cardHashCode = cardtable.cardHashCode,
                                    cardTitle = cardtable.cardTitle
                                }).ToList();

其中cardIDint类型。

我从查询匹配中选择最后一条记录 -

 CardModel previous = uploadedfile.Select(L => L.cardID).Last();

在上面这一行的位置,这使我无法隐式地将类型int转换为cardmodel

我尝试将其转换为int as -

   CardModel previous = Convert.ToInt32(uploadedfile.Select(L => L.cardID).Last());

我希望previous中的tuple与其他表数据一起使用 -

 var tuple = new Tuple<CardModel, List<TagModel>>(previous, taglist);
        return View(tuple);

这样做的过程是什么?

2 个答案:

答案 0 :(得分:0)

这一行

uploadedfile.Select(L => L.cardID)

返回int的集合,即只有值cardID字段

你想得到什么?
如果上次CardModel,那么您可以使用不Select

Last扩展名
CardModel previous = uploadedfile.Last();

如果上次cardID,那么您需要将previous变量的类型更改为int

int previous = uploadedfile.Select(L => L.cardID).Last();

答案 1 :(得分:0)

当您尝试从last获取CardModel uploadedfile个实例时,以下内容就足够了:

CardModel previous = uploadedfile.Last();