【发布时间】:2011-10-24 22:42:16
【问题描述】:
我正在尝试在 LINQPad 中以 C# 程序或 C# 语句的形式运行一个简单的代码:
var query = dbtable.Where(f => f.date== new DateTime(2011,10,18));
fd.Dump();
我收到以下错误:
无法将类型“System.Linq.IQueryable”隐式转换为“LINQPad.User.var”。存在显式转换(您是否缺少演员表?)
在你问之前:不,我没有创建“var”类型。
有人知道吗?
【问题讨论】:
-
回答我自己的问题:它刚刚意识到我正在查看的数据库中的 200 多个表之一称为“var”。 LinqPad 自动创建一个“var”类型。
-
我们实际上考虑在这种情况下向编译器添加一个警告——当它可能与名为“var”的类型不明确时,你使用“var”——但后来决定不,它不是值得付出努力,因为没有明智的人会遇到这个问题。我想要么我们错了,要么你不是一个明智的人。 :-)
-
我认为自己是一个明智的人。不幸的是,我不能对设计我正在查看的数据库的人说同样的话:)
-
@ThomasMaterna,我认为您应该将您的评论写为实际答案。然后你就可以接受了。
-
默认情况下,LINQPad 将表的类型名称大写(这样可以防止出现此类问题)。大概您在连接属性中禁用了大写?