asp.net 使用 MongoDB 初体验

首先:驱动


如果asp.net 想使用MongoDB,.net没有自带的链接类。得用第三方或官方的链接类。

当然有很多种驱动,我就不一一介绍了。

今天我就介绍一个我比较常用的驱动-----MongoDB。

接下来,我们还要去下载MongoDB的C#驱动,它可以让我们在C#中使用MongoDB 。下载地址:https://github.com/samus/mongodb-csharp


我们在C#访问MongoDB所需的驱动就是项目MongoDB了。编译这个项目就能得到了,文件名:MongoDB.dll

 

asp.net 中 使用 MongoDB


首先先启动MongoDB,我在之前的文章里已经介绍过在这里就不做介绍了。

建立一个实体类 用户表

[csharp] view plaincopy
 
  1. public partial class User{  
  2.     [MongoId]  
  3.     public string UID{ get; set; }  
  4.     public string NAME{ get; set; }  
  5.     public string SEX{ get; set; }  
  6.     public int AGE{ get; set; }  
  7.     }  

说明:这就是一个简单的类,而且代码中的[MongoId]也是可以不要的,如果要是写了他会映射"_id"字段。


MongoDB数据库首先先建一个数据库叫“dbmy”,建一个集合(表)“User”,在建立文档(数据)。

一下例子都需要引入MongoDB.dll

 

[csharp] view plaincopy
 
  1. private string _connectionString = "Server=127.0.0.1";  //数据库服务器ip或地址  
  2.   
  3. private string _dbName = "dbmy";  

 


添加数据

[csharp] view plaincopy
 
  1. public void Insert(User user)  
  2. {  
  3.     user.UID = Guid.NewGuid().ToString("N");  
  4.   
  5.     // 首先创建一个连接  
  6.     using( Mongo mongo = new Mongo(_connectionString) ) {  
  7.   
  8.         // 打开连接  
  9.         mongo.Connect();  
  10.   
  11.         // 切换到指定的数据库  
  12.         var db = mongo.GetDatabase(_dbName);  
  13.   
  14.         // 根据类型获取相应的集合  
  15.         var collection = db.GetCollection<User>();  
  16.   
  17.         // 向集合中插入对象  
  18.         collection.Insert(customer);  
  19.     }  
  20. }  


 

删除数据

[csharp] view plaincopy
 
  1. public void Delete(string UId)  
  2. {  
  3.     using( Mongo mongo = new Mongo(_connectionString) ) {  
  4.         mongo.Connect();  
  5.         var db = mongo.GetDatabase(_dbName);  
  6.         var collection = db.GetCollection<Customer>();  
  7.   
  8.         // 从集合中删除指定的对象  
  9.         collection.Remove(x => x.UID == UId);  
  10.     }  
  11. }  


 


修改数据

[csharp] view plaincopy
 
  1. public void Update(User user)  
  2. {  
  3.     using( Mongo mongo = new Mongo(_connectionString) ) {  
  4.         mongo.Connect();  
  5.         var db = mongo.GetDatabase(_dbName);  
  6.         var collection = db.GetCollection<User>();  
  7.   
  8.         // 更新对象  
  9.         collection.Update(user, (x => x.UID == user.UID));  
  10.     }  
  11. }  


 


获取数据

[csharp] view plaincopy
 
  1. public User GetById(string UId)  
  2. {  
  3.     using( Mongo mongo = new Mongo(_connectionString) ) {  
  4.         mongo.Connect();  
  5.         var db = mongo.GetDatabase(_dbName);  
  6.         var collection = db.GetCollection<User>();  
  7.   
  8.         // 查询单个对象  
  9.         return collection.FindOne(x => x.UID == UId);  
  10.     }  
  11. }  



调用


假如把操作方法都封装在一个叫test.cs的类。

[csharp] view plaincopy
 
    1. test t=new test();  
    2. //插入数据   
    3. t.Insert(User);  
    4.   
    5. //更新数据  

posted on 2015-04-01 16:51  大西瓜3721  阅读(443)  评论(0编辑  收藏  举报

导航