【问题标题】:What am I Doing Wrong with IQueryable<T>?我对 IQueryable<T> 做错了什么?
【发布时间】:2010-11-07 18:19:31
【问题描述】:

我认为 IQueryable&lt;T&gt; 是从 IEnumerable&lt;T&gt; 派生的,那么为什么我不能像访问记录集合一样访问查询结果?

public bool DoLogIn(System.String strUserName, System.String strPassword)
{
    if (this.IsLoggedIn)
        return false;

    ASRDBDataContext ASRData = new ASRDBDataContext();
    IQueryable<user> CurrUser =
        from usr in ASRData.users
        where usr.userName == strUserName
        where usr.password == strPassword
        select usr;

    if (CurrUser.Count() != 1)
        return false;

    this.CurrUserID = CurrUser[0].userID;   // Error
    return true;
}

返回的错误是:“无法将带有 [] 的索引应用于 'System.Linq.IQueryable&lt;user&gt;' 类型的表达式”

【问题讨论】:

    标签: c# .net linq ienumerable iqueryable


    【解决方案1】:

    IEnumerable 不可索引。 IQueryable 也不是。

    如果您想要 LINQ 查询的第一项,请尝试使用 First()FirstOrDefault()Single()SingleOrDefault() 方法。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2020-01-29
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多