saville

博客园 首页 新随笔 联系 订阅 管理

NoRM是.NET平台下MongoDB的第三方驱动,可以使用强类型的类操作MongoDB。使用NoRM非常简单,只需要在工程中引用Norm.dll即可。下面来看一个例子。

首先建立一个表示人员信息的模型

View Code
class Person
{
[MongoIdentifier]
publicstring ID
{
get
{
return _id;
}
}
publicstring Name { get; set; }
publicint Age { get; set; }
public List<string> Phone { get; set; }

privatestring _id;

public Person()
{
_id
= Guid.NewGuid().ToString();
Phone
=new List<string>();
}

publicvoid AddPhone(string phone)
{
Phone.Add(phone);
}
}

 接下来连接数据库

View Code
using (var db =new Mongo("Person", "127.0.0.1", "27017", null))
{
var personColl
= db.Database.GetCollection<Person>("Person");
}

 新增数据并显示

View Code
Person person1 =new Person();
person1.Name
="Person1";
person1.Age
=1;
person1.AddPhone(
"13500000001");
person1.AddPhone(
"13500000002");

Person person2
=new Person();
person2.Name
="Person2";
person2.Age
=2;
person2.AddPhone(
"13500000003");
person2.AddPhone(
"13500000004");

personColl.Insert(person1);
personColl.Insert(person2);
ShowPersonList(personColl);

显示部分代码如下:

View Code
privatestaticvoid ShowPersonList(IMongoCollection<Person> personColl)
{
foreach (Person person in personColl.AsQueryable())
{
Console.WriteLine(
"Person Name is {0}, age is {1}", person.Name, person.Age.ToString());
string phoneInfo ="Phone Numbers:";
foreach (var phone in person.Phone)
{
phoneInfo
+= phone +"";
}
Console.WriteLine(phoneInfo);
}
Console.WriteLine(
"Person Numbers:{0}", personColl.Count());
}

修改数据

View Code
person2.Phone.RemoveAt(0);
person2.Age
=3;
personColl.Save(person2);
ShowPersonList(personColl);

删除数据

View Code
personColl.Delete<Person>(person1);
ShowPersonList(personColl);

结果显示如下:

posted on 2011-03-18 16:16  saville  阅读(793)  评论(0编辑  收藏  举报