MongoDB入门教程之C#驱动操作实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Linq.Expressions;
using MongoDB.Configuration;
using MongoDB.Linq;
using MongoDB.Attributes;
namespace MongoDB.Test
{
public class MongodbHelper<T> where T : class
{
string connectionString = string.Empty;
string databaseName = string.Empty;
string collectionName = string.Empty;
static MongodbHelper<T> mongodb;
#region 初始化操作
/// <summary>
/// 初始化操作
/// </summary>
public MongodbHelper()
{
connectionString = "Server=127.0.0.1:2222";
databaseName = "shopex";
collectionName = "person";
}
#endregion
#region 实现linq查询的映射配置
/// <summary>
/// 实现linq查询的映射配置
/// </summary>
public MongoConfiguration configuration
{
get
{
var config = new MongoConfigurationBuilder();
config.Mapping(mapping =>
{
mapping.DefaultProfile(profile =>
{
profile.SubClassesAre(t => t.IsSubclassOf(typeof(T)));
});
mapping.Map<T>();
mapping.Map<T>();
});
config.ConnectionString(connectionString);
return config.BuildConfiguration();
}
}
#endregion
#region 插入操作
/// <summary>
/// 插入操作
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public void Insert(T t)
{
using (Mongo mongo = new Mongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
collection.Insert(t, true);
mongo.Disconnect();
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion
#region 更新操作
/// <summary>
/// 更新操作
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public void Update(T t, Expression<Func<T, bool>> func)
{
using (Mongo mongo = new Mongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
collection.Update<T>(t, func, true);
mongo.Disconnect();
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion
#region 获取集合
/// <summary>
///获取集合
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public List<T> List(int pageIndex, int pageSize, Expression<Func<T, bool>> func, out int pageCount)
{
pageCount = 0;
using (Mongo mongo = new Mongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(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 读取单条记录
/// <summary>
///读取单条记录
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public T Single(Expression<Func<T, bool>> func)
{
using (Mongo mongo = new Mongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
var single = collection.Linq().FirstOrDefault(func);
mongo.Disconnect();
return single;
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion
#region 删除操作
/// <summary>
/// 删除操作
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public void Delete(Expression<Func<T, bool>> func)
{
using (Mongo mongo = new Mongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
//这个地方要注意,一定要加上T参数,否则会当作object类型处理
//导致删除失败
collection.Remove<T>(func);
mongo.Disconnect();
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion
}
#region 数据实体
/// <summary>
/// 数据实体
/// </summary>
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
}
- MongoDB入门教程之C#驱动操作实例
- MongoDB入门教程之C#驱动操作实例
- .NET 操作MongoDB入门(二)安装MongoDB的C#驱动
- C#操作webservice(经典入门教程及实例)
- 浅析MongoDB及其C#驱动的操作步骤(转自:http://database.51cto.com/art/201007/212039.htm)
- [C#]程序设计入门与实例视频教程24:委托
- PHP操作MongoDB实例 --- ttlsa教程系列之mongodb(十一)
- MongoDB教程快速学会入门 第3篇 细说高级操作
- 在C#中使用官方驱动操作MongoDB
- C#中使用官方驱动操作MongoDB
- [转载]在C#中使用官方驱动操作MongoDB
- MongoDB入门教程之细说MongoDB数据库的增删查改操作
- C# 入门操作XML文件实例
- Pylons 入门实例教程 – 数据库操作
- MongoDB C# 驱动教程
- 8篇MongoDB教程快速学会入门 第3篇 细说高级操作
- 8篇MongoDB教程快速学会入门 第6篇 索引操作
- MongoDB入门教程之索引操作浅析
- C#使用MySQLDriverCS操作MySQL实例教程代码