在C#中使用AsQueryable查询时获取InvalidOperationException

时间:2015-05-08 06:42:12

标签: c# linq mongodb asqueryable

我有一个实体类作为城市。

 [BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)]
        public string _id { get;  set; }
        public string city { get; set; }
        public Array loc { get; set; }
        public double pop { get; set; }
        public string state { get; set; }

我想用AsQueryable()类创建一个简单的查询。这是我的查询代码

string dbName = dao.dbName();
var db = mongo.GetDatabase(dbName);

using (mongo.RequestStart(db))
{
       var collection = db.GetCollection<City>("city");
       var query = collection.AsQueryable().First(c => c.city.Equals("VIENNA"));

       Console.WriteLine( query.ToString());
}

当我运行代码时,我得到像这样的System.InvalidOperationException

  

类型'System.InvalidOperationException'的未处理异常   发生在System.Core.dll

at

var query = collection.AsQueryable().First(c => c.city.Equals("VIENNA"));

线。谁能解释为什么我得到这个例外并导致解决方案?

1 个答案:

答案 0 :(得分:2)

First方法查找与作为参数传递的表达式匹配的第一个结果。当它找不到任何内容时,它将抛出此异常。如果您不确定序列是否包含您要查找的元素,请使用FirstOrDefault。请参阅this文章,获取精彩摘要。