Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将lambda表达式转换为类型';字符串';因为它不是委托类型_C#_Asp.net_Linq_Lambda - Fatal编程技术网

C# 无法将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

我使用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
                      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();