当前位置:  开发笔记 > 数据库 > 正文

使用Linq to SQL时为什么会出现"Invalid Cast"?

如何解决《使用LinqtoSQL时为什么会出现"InvalidCast"?》经验,为你挑选了1个好方法。

当谈到Linq to SQL时,我有点新手,但我希望你能提供帮助.我用扩展方法编写了以下Linq to SQL语句:

Cedb.ClassEvents.Where(c => c.ClassID == 1).Select(c => c).Single()

其中Cedb是Datacontext,ClassEvents是一个表(用于在工厂中保存的类和事件),ClassID是唯一的整数键.

此查询在LinqPad中运行正常(没有Cedb).当它返回时,它表示返回类型是"ClassEvent".在Visual Studio的Intellisense中,它告诉我此查询的返回类型是ClassEvent(在我的数据模型中创建).但是,当我尝试将结果放在变量中时:

var classEvent = Cedc.ClassEvents.Where(c.ClassID == 1).Select(c => c).Single();

然后我收到一个错误:InvalidCastException:指定的强制转换无效.如果我使用"ClassEvent"类代替var,也会发生同样的事情.我是新手,但这个看起来像是一个真正的扣篮,而不是一个错误.是否有一些我不知道导致错误的Single方法?任何帮助,将不胜感激!



1> Mark Brittin..:

Slace - 以及任何其他感兴趣的团体."无效的转换异常"错误的原因是基础数据模型的更改.smallint字段已更改为bit.因此,当系统试图将查询结果映射到"ClassEvent"数据结构时,模型(尚未更新)与数据表之间的冲突就出现了.

尽管如此,我确实很感激答案!

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有