C# 无法将lambda表达式转换为类型';字符串';因为它不是委托类型
我使用LINQ lambda表达式,如下所示:C# 无法将lambda表达式转换为类型';字符串';因为它不是委托类型,c#,asp.net,linq,lambda,C#,Asp.net,Linq,Lambda,我使用LINQ lambda表达式,如下所示: int Value = 1; qryContent objContentLine; using (Entities db = new Entities()) { objContentLine = (from q in db.qryContents where q.LineID == Value orderby q.RowID descending
int Value = 1;
qryContent objContentLine;
using (Entities db = new Entities())
{
objContentLine = (from q in db.qryContents
where q.LineID == Value
orderby q.RowID descending
select q).FirstOrDefault();
}
但是,我得到以下错误:
无法将lambda表达式转换为类型“string”,因为它不是委托类型
我认为您缺少使用System.Linq的
此系统类中的代码>
并使用System.Data.Entity添加
到代码中在我的例子中,我必须使用System.Data.Entity添加代码>对于刚刚偶然发现这一点的人,我解决了一个此类错误,该错误与所有引用一起抛出,并使用正确放置的语句。在返回DataTable的函数中替换,而不是在声明的DataTable上调用它,显然会有一些混淆。例如:
这对我很有用:
DataTable dt = SomeObject.ReturnsDataTable();
List<string> ls = dt.AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();
DataTable dt=SomeObject.returnsDataable();
列表ls=dt.AsEnumerable().Select(dr=>dr[“name”].ToString()).ToList();
但这并没有:
List<string> ls = SomeObject.ReturnsDataTable().AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();
List ls=SomeObject.returnsDataable().AsEnumerable().Select(dr=>dr[“name”].ToString()).ToList();
我仍然不能100%确定原因,但如果有人对这种类型的错误感到失望,请尝试一下。我的案例解决了我正在使用的问题
@Html.DropDownList(model => model.TypeId ...)
使用
将解决它如果它与其他用户声明的使用指令丢失无关,那么如果您的查询存在其他问题,也会发生这种情况
查看VS编译器错误列表:
例如,如果查询中的“Value”变量不存在,则会出现“lambda to string”错误,以及一个又一个与未知/错误字段相关的错误
在您的情况下,可能是:
objContentLine = (from q in db.qryContents
where q.LineID == Value
orderby q.RowID descending
select q).FirstOrDefault();
错误:
错误241无法将lambda表达式转换为类型“string”,因为它不是委托类型
错误242委托“System.Func”不接受1个参数
错误243当前上下文中不存在名称“Value”
修复“Value”变量错误,其他错误也将消失。错误在哪里引发?无法将lambda表达式转换为类型“string”,因为它不是委托类型。您能否提供有关类qryContent
和db.qryContents
属性的更多详细信息?也许这会有帮助?您是否缺少使用System.Linq的代码>?谢谢!这帮我解决了:)它对我有效:)我也遇到了同样的问题,你的回答帮我解决了。谢谢。@Ryan Kohn我已经应用了这里描述的所有解决方法,但没有一种方法没有解决我的问题。所以,您能看看Kendo UI上描述的请:无法将lambda表达式转换为“string”类型,因为它不是委托类型吗?提前谢谢。@H.Johnson注意,我只编辑了这个答案。skb是原作者。另一方面,如果你的问题与问题中所描述的问题不一样,你可以考虑向社区提出一个新问题。当一个不同的答案被认为是正确答案时?@Hamad,人们发布已经被接受答案的问题的答案是完全可以的。这个答案确实给出了OP报告的异常可能发生的另一种情况,因此可以帮助获得此异常的其他人。这解决了我的问题!谢谢。谢谢,非常感谢,这真的帮助了mecalm搞定了@Hamad…这一定是有史以来最愚蠢的事情了。给你一个完全误导的错误信息,而不是清楚地说你错过了一个参考。有人不能在微软编程。嗯,也谢谢你帮我修好。Visual Studio未使用。System.Data.Entity检测到此缺失代码>这对我很有帮助,我使用了Include()
进行快速加载。谢谢:)使用System.Linq代码>修复了我的问题。谢谢实际上,我在几分钟前就遇到了这个问题,我使用了System.Linq和System.Data.Entity。我必须删除它们,运行一个失败的构建,然后将它们读取到文件中。然后成功了。谢谢,这解决了我的问题!这是我的迭代:dtSQLServers.AsEnumerable().Where(dr=>dr[“SourceSystem”].ToString()==“xxxxxxxxx”).ToList()
objContentLine = (from q in db.qryContents
where q.LineID == Value
orderby q.RowID descending
select q).FirstOrDefault();