无法将lambdaexpression式转换为“string”types,因为它不是委托types

我正在使用像这样的LINQ lambdaexpression式:

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(); } 

但是,我收到以下错误:

无法将lambdaexpression式转换为“string”types,因为它不是委托types

我想你错过了using System.Linq; 从这个系统类。

并添加System.Data.Entity; 到代码

在我的情况下,我不得不添加using System.Data.Entity;

我的情况下解决了我使用

 @Html.DropDownList(model => model.TypeId ...) 

运用

 @Html.DropDownListFor(model => model.TypeId ...) 

将解决它

如果与其他用户声明的丢失使用指令无关,如果查询存在其他问题,也会发生这种情况。

看一下VS编译器的错误列表:例如,如果查询中的“Value”variables不存在,则会出现“lambda to string”错误,并且接连发生一些错误,错误的领域。

你的情况可能是:

 objContentLine = (from q in db.qryContents where q.LineID == Value orderby q.RowID descending select q).FirstOrDefault(); 

错误:

错误241无法将lambdaexpression式转换为键入“string”,因为它不是委托types

错误242委托“System.Func <..>”不带1个参数

错误243名称“值”在当前上下文中不存在

修复“值”variables错误,其他错误也将消失。

对于现在只是磕磕绊绊的人,我解决了这个types的错误,这个错误是所有引用和正确使用语句引发的。 显然有一些混淆代替了返回DataTable的函数,而不是在声明的DataTable上调用它。 例如:

这对我工作:

 DataTable dt = SomeObject.ReturnsDataTable(); List<string> ls = dt.AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>(); 

但是这并没有:

 List<string> ls = SomeObject.ReturnsDataTable().AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>(); 

我仍然不是100%肯定为什么,但如果有人因为这种types的错误而感到沮丧,请尝试一下。