8天学通MongoDB――第八天 驱动实践(三)

2014-11-23 20:25:48 · 作者: · 浏览: 51
.Disconnect(); throw; } } } #endregion #region 更新操作 /// /// 更新操作 /// /// /// public void Update(T t, Expression> func) { using (Mongo mongo = new Mongo(configuration)) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection(collectionName); collection.Update(t, func, true); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } } #endregion #region 获取集合 /// ///获取集合 /// /// /// public List List(int pageIndex, int pageSize, Expression> func, out int pageCount) { pageCount = 0; using (Mongo mongo = new Mongo(configuration)) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection(collectionName); pageCount = Convert.ToInt32(collection.Count()); var personList = collection.Linq().Where(func).Skip(pageSize * (pageIndex - 1)) .Take(pageSize).Select(i => i).ToList(); mongo.Disconnect(); return personList; } catch (Exception) { mongo.Disconnect(); throw; } } } #endregion #region 读取单条记录 /// ///读取单条记录 ///
/// /// public T Single(Expression> func) { using (Mongo mongo = new Mongo(configuration)) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection(collectionName); var single = collection.Linq().FirstOrDefault(func); mongo.Disconnect(); return single; } catch (Exception) { mongo.Disconnect(); throw; } } } #endregion #region 删除操作 /// /// 删除操作 /// /// /// public void Delete(Expression> func) { using (Mongo mongo = new Mongo(configuration)) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection(collectionName); //这个地方要注意,一定要加上T参数,否则会当作object类型处理 //导致删除失败 collection.Remove(func); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } } #endregion } #region 数据实体 /// /// 数据实体 /// public class Person { [MongoAlias("_id")] public string ID { get; set; } public string Name { get; set; } public int Age { get; set; } public DateTime CreateTime { get; set; } } #endregion }

wow,趁着3天的休假,不断的努力终于把这个系列写完了,很感谢一直关注此系列的朋友