当谈到Linq to SQL时,我有点新手,但我希望你能帮上忙。我已经写了下面的LINQ to SQL语句扩展方法:当我使用Linq to SQL时,为什么会出现“Invalid Cast”?
Cedb.ClassEvents.Where(c => c.ClassID == 1).Select(c => c).Single()
凡商务及经济发展是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方法的问题,我不知道是导致错误?任何帮助,将不胜感激!
谢谢!我开始输入“如果有人知道更简单的方法......”,因为我记得有一篇“10个神话”文章解释了这种情况。但是,我想了解所有事情都做了什么,而不仅仅是寻找捷径。幸运的是,你们都做到了。再次感谢。 – 2009-01-12 02:38:56
链接到[10 LINQ神话](http://www.albahari.com/nutshell/10linqmyths.aspx) – Justin 2012-07-01 22:00:29