我正在尝试在我的Entity Framework上下文中执行一个非常愚蠢的基本LINQ查询。它是这样的:
var query = from e in context.Entity1s.Include("Entity2")
where e.Id == someVar.E1Id
select e;
正如您所看到的,这是一个基本的,实际上是复制粘贴的教科书查询。但Visual Studio在'where'关键字上添加了一个红色波浪形下划线,我得到一个看起来像的构建错误:
委托'
System.Func<Entity1, int, bool>
'不接受1个参数
我无法做出正面或反面。谁能解释一下发生了什么?
答案 0 :(得分:3)
经过多次半随机修补,我解决了这个问题。我不知道为什么我现在必须这样做,当我以前从未有过,而且我不完全确定为什么它在地球上修复它,或者它到底有什么用处理我遇到的错误,但我解决了这个问题:
// --->Added This<--
var query = from Entity1 e in context.Entity1s.Include("Entity2")
where e.Id == someVar.E1Id
select e;
将e
转换为强声明类型,而不是让Visual Studio在编译时推断它的类型,就像我应该的那样。那好吧。没有大碍。没理由我永远无法宣布e的类型。
仍然让我感到不安,我没有真正解决这个问题。我的意思是,我得到了它的工作,但为什么?为什么我做的有所作为?特别是当它从未像现在这样重要时?
我在这里选择我的答案是正确的,因为它解决了这个问题,但是如果有人有信息要说明&#34;为什么它有效?&#34;方面,请留下评论。我确定我不是唯一一个愿意学习更多知识的人。