为什么我无法在我的asp.net mvc应用程序中使用Linq获取此代码?

时间:2011-04-20 14:47:50

标签: asp.net asp.net-mvc linq-to-sql asp.net-mvc-2

我有这段代码从数据库中获取所有baobjectCode。

    var maxCode = variables.Where(w => w.code.StartsWith(prefix) && w.code.Length == length)
        .OrderByDescending(o => o.code).Select(s => s.code).FirstOrDefault();
}

我在这个maxcode查询中遇到了构建错误。

  

错误8'string'不包含'code'的定义,并且没有可以找到接受类型'string'的第一个参数的扩展方法'code'(你是否缺少using指令或汇编引用?)<登记/>   任何人都可以帮我解决为什么我会收到此错误?我在这里做错了吗?

2 个答案:

答案 0 :(得分:2)

您在第一个语句中选择BaObject.BaObjectCode列表,因此variables是字符串类型

.Select(w => w.BaObjectCode).ToList();

你应该做

 var maxCode = variables.Where(w => w.StartsWith(prefix) && w.Length == length)
    .OrderByDescending(o => o).FirstOrDefault();

在你的上一个声明中。根本不需要选择,您可以将其删除

答案 1 :(得分:1)

添加

.OrderByDescending()

在.ToList()之前的第一行,然后用:

替换最后一行
var maxCode = variables.FirstOrDefault(w => w.StartsWith(prefix) && w.Length == length);

这应该有效。